我正试图在浏览器中访问密钥掩蔽器url - /hello所保护的权限.url由node.js应用程序提供,此错误由以下代码引发。
在下列一系列行动之后:
1)将客户端和用户添加到keycloak主域
2)保护快递node.js应用的网址:
var Keycloak = require('keycloak-connect');
let kcConfig = {
clientId: 'test_ui',
// secret : "d31c4718-12e9-407b-9bf2-cb72734a23f0",
public: true,
serverUrl: https://127.0.0.1/auth,
resource: "test_ui",
realm: 'master'
}
var session = require('express-session');
var memoryStore = new session.MemoryStore()
var keycloak = new Keycloak( {store : memoryStore}, kcConfig);
this.app.use(session({
secret: 'mySecret',
// resave: false,
// saveUninitialized: true,
store: memoryStore
}));
this.app.use( keycloak.middleware() );
this.app.get( '/hello', keycloak.protect());3)访问浏览器中受保护的url,重定向到Keycloak登录屏幕,对.然后就会出现错误。
在wireshark中可以看到以下请求序列:
/auth/realms/master/protocol/openid-connect/auth?client_id=test_ui&state=504b250d-8616-4685-8c8d-5032713c883a&redirect_uri=https://127.0.0.1/hello/auth_callback&scope=openid&response_type=code在登录屏幕中进行身份验证之后:
/auth/realms/master/login-actions/authenticate?session_code=TwhsWxUig85PFHfiv-31OTHQl3aApD6z0lMdOr8hgDc&execution=d58a2cad-2be2-4797-b35a-d7b606945b14&client_id=test_ui&tab_id=ywQfz51qnM0我考虑过将sslRequired: "none"添加到kcConfig中,但这样做似乎没有效果。试图使用也保密的客户端,而不是公开的一个,但没有效果。
package.json内容:
"express": "4.16.2",
"keycloak-connect" : "4.3.0",
"express-session" : "1.15.6"使用Keycloak 4.3。
造成此问题的原因是什么,以及如何修复此错误?
更新
在密克雅克邮件列表中的process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";之后,在node.js应用程序中添加了响应,现在出现了错误:
无法获得授予代码:401:未经授权
发布于 2020-05-13 08:36:29
如参考邮件列表中所述:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0就像一种魅力。
https://stackoverflow.com/questions/52611788
复制相似问题