Obtenir les informations utilisateur au sein d'une organisation
Où l'utiliser
Ceci est généralement utilisé dans la page de profil utilisateur où les utilisateurs doivent afficher les informations de leur organisation.
Comment l’implémenter
Il existe deux façons d'obtenir les informations utilisateur au sein d'une organisation.
Décoder le jeton d’identifiant
Le jeton d’identifiant (ID token) est un JWT standard qui contient les informations de profil utilisateur et les revendications liées à l’organisation. Appelez la méthode SDK decodeIdToken() pour obtenir un objet JSON comme celui-ci :
{
"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"
// ...
}
Cependant, le jeton d’identifiant (ID token) n’est émis que lors de l’authentification et peut devenir obsolète si le profil utilisateur change par la suite.
Pour obtenir les informations les plus à jour, utilisez la seconde approche ci-dessous, ou appelez clearAllTokens() et relancez un flux d’authentification pour obtenir un nouveau jeton d’identifiant.
await logtoClient.clearAllTokens();
logtoClient.signIn({
redirectUri: 'https://your-app.com/callback',
prompt: 'consent',
});
Si la session est toujours valide, l’appel à signIn redirigera vers votre application sans nécessiter de saisie d’identifiants. Du point de vue de l’utilisateur, l’application se rafraîchit simplement et un nouveau jeton d’identifiant est émis en arrière-plan.
Récupérer les informations utilisateur depuis l’endpoint /oidc/me
Vous pouvez également interroger /oidc/me pour obtenir en temps réel les informations utilisateur dans le contexte de l’organisation. Appelez la méthode SDK fetchUserInfo().
Si vous utilisez un jeton opaque (émis lorsqu’aucune ressource API n’est spécifiée), vous pouvez tout de même récupérer les informations d’appartenance à l’organisation via l’endpoint userinfo. Lorsque vous demandez la portée urn:logto:scope:organizations, la réponse inclura organizations et d’autres revendications liées à l’organisation.
Notez que les jetons opaques ne peuvent pas être utilisés comme jetons d’organisation pour accéder à des ressources spécifiques à l’organisation. Voir Jeton opaque et organisations pour plus de détails.