跳到主要内容

获取组织内的用户信息

使用场景

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

组织用户信息

实现方法

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

1. 解码 ID 令牌 (ID token)

ID 令牌 (ID token) 是一个标准的 JWT,其中包含用户资料信息和与组织相关的声明 (Claims)。调用 SDK 方法 decodeIdToken() 可以获得如下的 JSON 对象:

{
"sub": "aauqbb63vg4s",
"name": "John Doe",
"picture": "https://example.com/johndoe.png",
"email": "[email protected]",
// ...
"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)。

2. 从 /oidc/me 端点获取用户信息

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