跳到主要内容

获取组织内的用户信息

使用场景​

这通常用于用户资料页面,需要展示用户的组织 (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()。