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/

希望帮助:)

Interesting Posts