メインコンテンツまでスキップ

組織内でユーザー情報を取得する

利用シーン

これは通常、ユーザープロフィールページで組織情報を表示する必要がある場合に使用されます。

組織ユーザー情報

実装方法

組織内でユーザー情報を取得する方法は 2 つあります。

ID トークン (ID token) をデコードする

ID トークン (ID token) は、ユーザープロフィール情報や組織関連のクレーム (Claims) を含む標準的な JWT です。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) 時にのみ発行されるため、その後ユーザープロフィールが変更された場合は古くなる可能性があります。 最新の情報が必要な場合は、下記の 2 つ目の方法を利用するか、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 にリクエストすることで、組織コンテキストでリアルタイムのユーザー情報を取得できます。SDK の fetchUserInfo() メソッドを呼び出してください。

不透明トークン (Opaque token) サポート:

不透明トークン (Opaque token)(API リソースが指定されていない場合に発行されます)を使用している場合でも、userinfo エンドポイントを通じて組織メンバーシップ情報を取得できます。urn:logto:scope:organizations スコープをリクエストすると、レスポンスに organizations やその他の組織関連クレーム (Claims) が含まれます。

不透明トークン (Opaque token) は、組織固有リソースへのアクセスのための組織トークン (Organization token) としては利用できませんのでご注意ください。詳細は 不透明トークン (Opaque token) と組織 をご覧ください。