跳到主要内容

获取组织内的用户信息

使用场景

这通常用于用户资料页面,需要展示用户的组织 (Organization) 信息。

组织 (Organization) 用户信息

如何实现

有两种方式可以获取组织 (Organization) 内的用户信息。

解码 ID 令牌 (ID token)

ID 令牌 (ID token) 是一个标准的 JWT,其中包含用户资料信息和与组织 (Organization) 相关的声明 (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() 并重新发起认证 (Authentication) 流程以获取新的 ID 令牌 (ID token)。

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

如果会话仍然有效,signIn 调用会在无需输入凭据的情况下重定向回你的应用。从用户的角度来看,应用只是刷新了一下,后台会自动签发新的 ID 令牌 (ID token)。

/oidc/me 端点获取用户信息

你也可以请求 /oidc/me,以在组织 (Organization) 上下文中获取实时的用户信息。调用 SDK 方法 fetchUserInfo()