【问题标题】:KeyStone JS Account ControllerKeyStone JS 帐户控制器
【发布时间】:2016-01-29 21:08:51
【问题描述】:

我在 NodeJS 中编码时了解 MVC 结构。我最近开始使用 Keystone JS,我非常喜欢它。但是,从他们设置控制器的方式来看,控制器似乎只用于渲染视图。

在早期的项目中,我有一个 Account.js 模型和一个 Account.js 控制器。我正在尝试看看它会如何复制到 keystone。

那么:我如何允许用户在 Keystone 项目中注册/登录/注销(不是进入管理 UI,而是像普通站点的成员一样)?我将如何制作帐户控制器(显然没有要呈现的视图)?

【问题讨论】:

    标签: node.js model-view-controller express account keystonejs


    【解决方案1】:

    您可以通过多种方式在 keystone 中实现自己的身份验证和帐户管理方法,因为它基于 express.js。

    然后,您可以将一组“中间件”函数添加到将在将请求传递给控制器​​之前运行的路由。

    例如 添加中间件之前的路由

    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/

    希望有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2017-04-20
      • 2016-06-07
      • 2012-01-12
      • 1970-01-01
      • 2019-05-13
      • 2011-03-28
      相关资源
      最近更新 更多