关于帐户关联的Keycloak documentation,我需要从访问令牌中提取用户会话ID 和客户会话ID 。
但是,我只能通过查看javascript adapter source code在令牌上找到他们称为session_state
的内容,这显然与sessionId
相同。
我认为这是他们所指的用户会话ID ?如果是这样,我在哪里可以找到所谓的客户会话ID ?
答案 0 :(得分:3)
将其视为客户端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编码哈希网址友好(即'+'和'/'替换为' - ','_'也删除任何尾随'='字符)