我只是试着用跟踪wolkenkit文档的聊天模板来测试wolkenkit的身份验证。用户登录似乎有效,但用户被重定向到Auth0,即使他们已经登录(没有客户端调用auth.login方法)。
下面是客户端的代码片段:
wolkenkit.connect({
host: 'local.wolkenkit.io',
port: 3000,
authentication: new wolkenkit.authentication.OpenIdConnect({
identityProviderUrl: 'https://<myIdentity>.eu.auth0.com/authorize',
clientId: '<myClientID>',
strictMode: false
})
}).
then(chat => {
console.log("chat.auth.isLoggedIn() = " + chat.auth.isLoggedIn());
console.log(chat.auth.getProfile());
if (!chat.auth.isLoggedIn()) {
return chat.auth.login();
}
});在package.json中,身份提供程序配置如下:
"wolkenkit": {
"environments": {
"default": {
"identityProvider": {
"name": "https://<myIdentity>.eu.auth0.com/",
"certificate": "/server/keys/<myIdentity>.eu.auth0.com"
},...清除cookie后的浏览器日志(我检查了提供者标识和chat.auth.getProfile()返回的对象):
Navigated to http://local.wolkenkit.io:8080/
index.js:14 chat.auth.isLoggedIn() = false
index.js:15 undefined
Navigated to https://<myIdentity>.eu.auth0.com/login?client=<clientID>...
Navigated to http://local.wolkenkit.io:8080/
index.js:14 chat.auth.isLoggedIn() = true
index.js:15 {iss: "https://<myIdentity>.eu.auth0.com/", sub: "auth0|...", aud: "...", iat: ..., exp: ..., …}
Navigated to https://<myIdentity>.eu.auth0.com/login?client=<clientID>...发布于 2018-01-15 16:11:09
尽管您配置了身份验证,但重定向通常意味着配置身份验证的方式出现错误。
您可能需要检查以下设置:
RS256 (而不是HS256 )对令牌进行签名(对于某些帐户来说,HS256似乎是Auth0的缺省值)。要找出正在使用的签名算法,请从浏览器的本地存储中获取令牌并将其粘贴到JWT调试器中。然后您可以看到令牌是如何签名的。如果您需要更改签名算法,您可以在Auth0中的客户端高级设置中找到这一点。certificate.pem。如果它有另一个名称,或者package.json中的路径不正确,wolkenkit甚至不应该启动应用程序,但是要确保再次检查文件的名称是否正确。package.json中,除了证书的路径之外,还必须提供您使用的身份提供者的名称,在您的示例中,这是https://<myIdentity>.eu.auth0.com/。请注意,此必须与令牌中的iss声明完全匹配。令牌中的声明通常包含一个尾随斜杠,而package.json中的值不包含。如果它们不同,请在package.json中使用令牌的值。完成更改后,请确保清空本地存储,并使用以下命令重新启动wolkenkit应用程序(否则更改将无效):
$ wolkenkit restart希望这会有所帮助:)
https://stackoverflow.com/questions/48266381
复制相似问题