我在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/

10-09 09:55