조직 내에서 사용자 정보 가져오기
사용 시점
이 기능은 일반적으로 사용자가 자신의 조직 정보를 보여주어야 하는 사용자 프로필 페이지에서 사용됩니다.
구현 방법
조직 내에서 사용자 정보를 얻는 방법은 두 가지가 있습니다.
1. ID 토큰(ID token) 디코딩
ID 토큰(ID token)은 사용자 프로필 정보와 조직 관련 클레임(Claim)을 포함하는 표준 JWT입니다. 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()를 호출하세요.