Passport.js 在没有keystone用户模型的情况下,是否可以在keystone.js中进行用户自定义身份验证?
关于Keystone中的授权,我有一个(我希望是)快速的问题:似乎“用户”对象是框架中的一个核心依赖项。我想完全避开它,但没有它似乎没有办法让应用程序正常运行 我在这里运行了一个基本旁路:Passport.js 在没有keystone用户模型的情况下,是否可以在keystone.js中进行用户自定义身份验证?,passport.js,keystonejs,Passport.js,Keystonejs,关于Keystone中的授权,我有一个(我希望是)快速的问题:似乎“用户”对象是框架中的一个核心依赖项。我想完全避开它,但没有它似乎没有办法让应用程序正常运行 我在这里运行了一个基本旁路: keystone.init({ //... 'auth': (req, res, next)=>{ if(Roles.has(Roles.Admin, Roles.Keyston)){ next(); } else { throw
keystone.init({
//...
'auth': (req, res, next)=>{
if(Roles.has(Roles.Admin, Roles.Keyston)){
next();
} else {
throw "403"; //Terminate
}
},
'user model': 'User',
//...
})
其结果是:
Sorry, an error occurred loading the page (500)
snip\KS2\node_modules\keystone\templates\layout\base.jade:80
> 79| a(href='/keystone/' + User.path + '/' + user.id)= User.getDocumentName(user)
80| | .
81|
82| //- Common
item.get is not a function
因此,它期望用户对象存在于请求中(即使我使用自己的身份验证方法)。如果我完全禁用身份验证,这看起来很好,而且我可以使用一些中间件来保护路由,但这似乎是相当有缺陷的行为
“用户”对象实际上是框架中的依赖项,还是为了方便起见而存在?删除模型
//'user model' : 'User'
拱顶石
Sorry, an error occurred loading the page (500) Unknown keystone list undefined).
我相当肯定前一个错误与请求中的“用户对象”被设置为愚蠢的东西有关,因此Jade模板崩溃了。是否可以将此用户对象与框架解耦?如果没有,是否可以设置此对象,以便我可以继续使用passport.js
进行主身份验证
我对这个主题特别感兴趣,因为我想在Keystone.js管理模块中实现基于角色的身份验证,没有更多关于如何工作的信息/解决方法的想法,我没有一个起点
(**编辑错误存在,即使auth设置为false)
即使使用auth:false
也会退出,因为我有一个“user”对象,该对象显示为null并使模板崩溃
编辑#2
我已经创建了一个补丁,解决了用户身份验证关闭时的崩溃问题,它并没有真正回答这个问题,但它使应用程序再次可用,而无需依赖Keystone.js进行身份验证(这是此CMS的关键要求).我仍在寻求这方面的帮助,但以下是我暂时绕过它的方法。对于管理控制台来说,应用程序似乎朝着一个全新的方向发展 我正在对该fork发出一个pull请求(我相信这是当前npm上的包) 您可以在此处查看我的叉子: //标签v3.22的Git补丁 自D28DAE031252FC252598EF8496F336F27C1BBC0起,2001年9月17日星期一00:00:00 摘自:“丹尼尔B.查普曼” 日期:2016年8月30日星期二09:25:50-0600 主题:[补丁]添加了一个本地
auth
变量,用于镜像
keystone.get('auth')
配置设置,以便使用
自定义用户对象(如Passport.js)不会在
A由于“以身份登录”功能而导致的管理页面
---
lib/core/render.js | 1 +
templates/layout/base.jade | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/core/render.js b/lib/core/render.js
index 5d80453..2b03b7f 100644
--- a/lib/core/render.js
+++ b/lib/core/render.js
@@ -59,6 +59,7 @@ function render(req, res, view, ext) {
moment: moment,
numeral: numeral,
env: keystone.get('env'),
+ auth: keystone.get('auth'),
brand: keystone.get('brand'),
appversion : keystone.get('appversion'),
nav: keystone.nav,
diff --git a/templates/layout/base.jade b/templates/layout/base.jade
index 1caee5e..95639c6 100644
--- a/templates/layout/base.jade
+++ b/templates/layout/base.jade
@@ -73,7 +73,7 @@ html
#footer: .container
p #{brand} #{appversion}
| Powered by <a href="http://keystonejs.com" target="_blank">KeystoneJS</a> version #{version}.
- if User && user
+ if User && user && auth
| Signed in as
a(href='/keystone/' + User.path + '/' + user.id)= User.getDocumentName(user)
| .
--
1.9.5.msysgit.0
---
lib/core/render.js | 1+
模板/布局/base.jade | 2+-
2个文件已更改,2个插入(+),1个删除(-)
diff——git a/lib/core/render.js b/lib/core/render.js
索引5d80453..2b03b7f 100644
---a/lib/core/render.js
+++b/lib/core/render.js
@@-59,6+59,7@@function render(请求、恢复、视图、扩展){
时刻:时刻,
数字:数字,,
env:keystone.get('env'),
+auth:keystone.get('auth'),
品牌:keystone.get(“品牌”),
appversion:keystone.get('appversion'),
导航:keystone.nav,
diff--git a/templates/layout/base.jade b/templates/layout/base.jade
索引1caee5e..95639c6 100644
---a/templates/layout/base.jade
+++b/模板/布局/base.jade
@@-73,7+73,7@@html
#页脚:。容器
p{brand}{appversion}
|由版本#{version}驱动。
-如果用户&&User
+如果用户&&User&&auth
|以身份登录
a(href='/keystone/'+User.path+'/'+User.id)=User.getDocumentName(User)
| .
--
1.9.5.msysgit.0
值得注意的是(这是最近投票的结果),团队拒绝了此修补程序,因此应将其归类为黑客。我将把git存储库留给任何需要它的人。
---
lib/core/render.js | 1 +
templates/layout/base.jade | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/core/render.js b/lib/core/render.js
index 5d80453..2b03b7f 100644
--- a/lib/core/render.js
+++ b/lib/core/render.js
@@ -59,6 +59,7 @@ function render(req, res, view, ext) {
moment: moment,
numeral: numeral,
env: keystone.get('env'),
+ auth: keystone.get('auth'),
brand: keystone.get('brand'),
appversion : keystone.get('appversion'),
nav: keystone.nav,
diff --git a/templates/layout/base.jade b/templates/layout/base.jade
index 1caee5e..95639c6 100644
--- a/templates/layout/base.jade
+++ b/templates/layout/base.jade
@@ -73,7 +73,7 @@ html
#footer: .container
p #{brand} #{appversion}
| Powered by <a href="http://keystonejs.com" target="_blank">KeystoneJS</a> version #{version}.
- if User && user
+ if User && user && auth
| Signed in as
a(href='/keystone/' + User.path + '/' + user.id)= User.getDocumentName(user)
| .
--
1.9.5.msysgit.0