KeyStone JS账户控制器
我在NodeJS编码时了解MVC结构。 我最近开始使用Keystone JS,我非常喜欢它。 但是,他们设置他们的控制器的方式,似乎控制器只能提供一个视图的目的。
在之前的项目中,我有一个Account.js模型和一个Account.js控制器。 我想看看它会如何复制到keystone。
所以:我如何让用户在一个Keystone项目中注册/login/注销(不是在pipe理界面中,而是像一个常规站点的成员)? 我怎么做一个帐户控制器(显然没有视图渲染)?
有很多方法可以在keystone中实现自己的身份validation和帐户pipe理方法,因为它基于express.js。
然后,您可以添加一个“中间件”函数的数组路由,这些路由将在将请求传递给控制器之前运行。
例如添加中间件之前的路由
app.get('/admin', routes.views.userAdmin);
中间件function
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);
这是一个非常宽泛的问题,所以我build议你去决定自己想要做的最好的方式,因为每个人都有自己的偏好。 你想要的search条件是“expression中间件身份validation”。 很多人使用PassporJS http://passportjs.org/
希望帮助:)