我在NodeJS中编码时了解MVC结构。我最近开始使用Keystone JS,我非常喜欢它。但是,按照他们设置控制器的方式,似乎控制器仅用于渲染视图。
在较早的项目中,我有一个Account.js模型和一个Account.js控制器。我正在尝试查看它将如何复制到梯形失真。
因此:我将如何允许用户在Keystone项目中登录/登录/注销(不是进入管理界面,而是像常规站点的成员一样)?我将如何制作“帐户”控制器(显然没有可呈现的视图)?
最佳答案
由于Keystone基于express.js,因此有很多方法可以在keystone中实现自己的身份验证和帐户管理方法。
然后,您可以向路由添加“中间件”功能数组,这些路由将在将请求传递给控制器之前运行。
例如
添加中间件之前的路由
app.get('/admin', routes.views.userAdmin);
中间件功能
function isAuthenticated(req, res, next) {
// do any checks you want to in here
// CHECK THE USER STORED IN SESSION FOR A CUSTOM VARIABLE
// you can do this however you want with whatever variables you set up
if (req.user.authenticated)
return next();
// IF A USER ISN'T LOGGED IN, THEN REDIRECT THEM SOMEWHERE
res.redirect('/');
}
添加中间件的路由
app.get('/admin', isAuthenticated, routes.views.userAdmin);
这是一个非常广泛的问题,因此我建议您自己去决定最好的方法,因为每个人都有自己的个人喜好。您想要的搜索词是“快速中间件认证”。很多人使用PassporJS http://passportjs.org/
希望有帮助:)
关于node.js - KeyStone JS帐户 Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33419083/