Authentication 如何在keystonejs中添加具有登录功能的不同模型?
我正在使用KeystoneJS 0.3.19构建一个应用程序,允许用户登录并访问所有应用程序功能。应用程序需要使用稍微不同的用户模型分离用户类别,因为每种类型支持不同的功能。我浏览了许多涉及用户模型定义、用户创建、登录和登录的文件,并做了一些更改。服务器运行良好,在本地主机上运行网站时,我更改的大部分代码也会执行,直到在keystone/lib/session.js中遇到persist函数,我想在其中设置一个条件,以查看发出请求的用户类型,并为要使用的变量分配适当的值。我使用req.user、req.body.user来确定这一点,这两种方法显然都是错误的,因为它在运行时是未定义的 我更改的文件是:Authentication 如何在keystonejs中添加具有登录功能的不同模型?,authentication,keystonejs,Authentication,Keystonejs,我正在使用KeystoneJS 0.3.19构建一个应用程序,允许用户登录并访问所有应用程序功能。应用程序需要使用稍微不同的用户模型分离用户类别,因为每种类型支持不同的功能。我浏览了许多涉及用户模型定义、用户创建、登录和登录的文件,并做了一些更改。服务器运行良好,在本地主机上运行网站时,我更改的大部分代码也会执行,直到在keystone/lib/session.js中遇到persist函数,我想在其中设置一个条件,以查看发出请求的用户类型,并为要使用的变量分配适当的值。我使用req.user、r
keystone/admin/api/session/signin.js
keystone/lib/session.js
keystone.js, to list the model in Admin UI
keystone.js/templates/views/signin.jade, select the type of user for login
我确定persist函数的用户类型的方法是错误的,正确的方法是什么
我还需要做些什么才能得到这个结果
我已经创建了新模型,并且在session.js出现此错误之前检查时,它会反映在管理UI上。我不确定我是否得到了您想要的结果,但对于我来说,我扩展了字段的用户模型(我使用的是Keystone 0.4 jFYI) 所以接下来您可以从代码中检查用户访问级别(我使用的是pug引擎) 另一个选项是,您可以将Relationship字段的现有用户模型扩展到一个模型,该模型由所需的字段、操作等组成,并使用代码中接下来的ref字段
accessLevel: {
type: Types.Select,
label: "Access level",
index: true,
numeric: true,
options: [
{ value: 1, label: "admin" },
{ value: 2, label: "cool_user" },
{ value: 3, label: "soopa_user" }
]
}
if user && user.accessLevel == 2
do something cool