跳至主要內容

取得組織內的使用者資訊

適用場景

這通常用於使用者個人資料頁面,需要顯示其所屬組織資訊時。

組織使用者資訊 (Organization user info)

如何實作

有兩種方式可以取得組織內的使用者資訊。

解碼 ID 權杖 (ID token)

ID 權杖 (ID token) 是一個標準 JWT,內含使用者個人資料資訊與組織相關宣告 (claims)。呼叫 SDK 方法 decodeIdToken() 可取得如下的 JSON 物件:

{
"sub": "aauqbb63vg4s",
"name": "John Doe",
"picture": "https://example.com/johndoe.png",
"email": "johndoe@example.com",
// ...
"organizations": [
"organization-id-1",
"organization-id-2",
"organization-id-3"
// ...
],
"organization_roles": [
"organization-id-1:admin",
"organization-id-2:member",
"organization-id-3:viewer"
// ...
],
"aud": "admin-console"
// ...
}

然而,ID 權杖 (ID token) 僅於驗證 (Authentication) 時簽發,若使用者個人資料後續有變更,內容可能會過時。 若需取得最新資訊,請參考下方第二種方式,或呼叫 clearAllTokens() 並重新啟動驗證流程以獲取新的 ID 權杖 (ID token)。

await logtoClient.clearAllTokens();
logtoClient.signIn({
redirectUri: 'https://your-app.com/callback',
prompt: 'consent',
});

如果會話仍然有效,signIn 呼叫會直接導回你的應用程式,無需再次輸入憑證。對使用者來說,應用程式僅是重新整理,並於背景取得新的 ID 權杖 (ID token)。

/oidc/me 端點取得使用者資訊

你也可以請求 /oidc/me 以即時取得組織情境下的使用者資訊。呼叫 SDK 方法 fetchUserInfo()

不透明權杖 (Opaque token) 支援:

如果你使用 不透明權杖 (Opaque token)(當未指定 API 資源時簽發),仍可透過 userinfo 端點取得組織成員資訊。當你請求 urn:logto:scope:organizations 權限範圍 (scope) 時,回應將包含 organizations 及其他組織相關宣告 (claims)。

請注意,不透明權杖 (Opaque token) 無法作為組織權杖 (Organization token) 用於存取組織專屬資源。詳見 不透明權杖 (Opaque token) 與組織 (Organizations)