簡體   English   中英

從Keycloak訪問令牌獲取客戶端會話ID

[英]Get client session id from Keycloak access token

在參考Keycloak的帳戶鏈接文檔時 ,我需要從訪問令牌中獲取用戶會話ID客戶端會話ID

但是,我只能通過查看他們的javascript適配器源代碼找到他們在令牌上調用session_state東西,這顯然與sessionId相同。

我估計這是他們所指的用戶會話ID 如果是這樣,我在哪里可以找到這個所謂的客戶會話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友好(即'+'和'/'替換為' - ','_'也刪除任何尾隨'='字符)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM