gpt4 book ai didi

node.js - KeyStone JS 帐户 Controller

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:53 25 4
gpt4 key购买 nike

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

在早期的项目中,我有一个 Account.js 模型和一个 Account.js Controller 。我正在尝试看看它如何复制到梯形校正。

那么:我如何允许用户在 Keystone 项目中注册/登录/注销(不是进入管理 UI,而是像常规网站的成员一样)?我将如何制作一个帐户 Controller (显然没有要呈现的 View )?

最佳答案

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

然后,您可以将一系列“中间件”函数添加到将在将请求传递到 Controller 之前运行的路由。

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com