获取组织内的用户信息
使用场景
这通常用于用户个人资料页面,需要展示用户的组织信息。
实现方法
有两种方式可以获取组织内的用户信息。
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() 即可。