【发布时间】:2018-03-25 15:10:46
【问题描述】:
参考 Keycloak 的 documentation 进行帐户链接,我需要从访问令牌中获取 user session id 和 client session id。
但是,通过查看他们的javascript adapter source code,我只能在令牌上找到他们称之为session_state 的东西,这显然与sessionId 相同。
我认为这是他们所指的用户会话ID?如果是这样,我在哪里可以找到这个所谓的 client session id?
【问题讨论】:
-
遇到了同样的问题。你找到解决办法了吗?
-
是的!原来它是客户ID。所以这样的事情应该可以工作:从访问令牌中提取用户会话ID和客户端会话ID(“aud”是客户端ID):
const { session_state, aud } = JSON.parse(decodeURIComponent(escape(atob(accessToken.split('.') [1]))))创建base64哈希:Base64.stringify(sha256(nonce + session_state + aud + 'facebookOrWhatever'))您还需要使生成的base64编码哈希url友好(即 '+' 和 '/' 替换为 '-' 和 '_' 还删除任何尾随 '=' 字符)
标签: javascript openid-connect keycloak