Inviter des membres à une organisation
Dans les applications multi‑locataires, il est courant de devoir inviter des membres dans une organisation. Ce guide présente les étapes et les détails techniques pour mettre en œuvre cette fonctionnalité.
Vue d'ensemble du flux
Le processus global est illustré dans le diagramme ci-dessous :
Créer des rôles d’organisation
Avant d’inviter des membres, créez des rôles d’organisation. Consultez le modèle d’organisation pour en savoir plus sur les rôles et les permissions.
Dans ce guide, créons deux rôles d’organisation typiques : admin et member.
Le rôle admin a un accès complet à toutes les ressources de l’organisation, tandis que le rôle member a un accès limité. Par exemple :
- Rôle
admin:read:data- Accès en lecture à toutes les ressources de données de l’organisation.write:data- Accès en écriture à toutes les ressources de données de l’organisation.delete:data- Accès en suppression à toutes les ressources de données de l’organisation.invite:member- Inviter des membres dans l’organisation.manage:member- Gérer les membres dans l’organisation.delete:member- Supprimer des membres de l’organisation.
- Rôle
member:read:data- Accès en lecture à toutes les ressources de données de l’organisation.write:data- Accès en écriture à toutes les ressources de données de l’organisation.invite:member- Inviter des membres dans l’organisation.
Cela peut être fait facilement dans la Console Logto. Vous pouvez également utiliser la Logto Management API pour créer des rôles d’organisation de manière programmatique.
Configurer votre connecteur e-mail
Puisque les invitations sont envoyées par e-mail, assurez-vous que votre connecteur e-mail est correctement configuré. Pour envoyer des invitations, configurez un modèle d’e-mail avec le type d’utilisation OrganizationInvitation. Vous pouvez inclure des variables d’organisation (par exemple, nom, logo) et d’invitant (par exemple, e-mail, nom) dans le contenu, et personnaliser les modèles localisés selon vos besoins.
Un exemple de modèle d’e-mail pour le type d’utilisation OrganizationInvitation est présenté ci-dessous :
{
"subject": "Vous êtes invité à rejoindre {{organization.name}}",
"content": "<p>Bonjour,</p><p>{{inviter.name}} ({{inviter.primaryEmail}}) vous a invité à rejoindre <strong>{{organization.name}}</strong>.</p><p>Cliquez sur ce <a href=\"{{link}}\" target=\"_blank\">lien</a> pour accepter l’invitation et commencer.</p><p>Si vous ne vous attendiez pas à cette invitation, vous pouvez ignorer cet e-mail en toute sécurité.</p>",
"usageType": "OrganizationInvitation",
"type": "text/html"
}
Le champ {{link}} dans le contenu de l’e-mail sera remplacé par le lien d’invitation réel lors de l’envoi de l’e-mail.
Gérer les invitations avec Logto Management API
Si vous n’avez pas encore configuré la Logto Management API, consultez Interagir avec Management API pour plus de détails.
Créer une invitation d’organisation avec Logto Management API
Il existe un ensemble d’API Management liées aux invitations dans la fonctionnalité organisations. Avec ces API, vous pouvez :
POST /api/organization-invitations: Créer une invitation d’organisation avec un rôle d’organisation attribué.POST /api/one-time-tokens: Créer un jeton à usage unique pour que l’invité puisse s’authentifier lors de l’acceptation de l’invitation. En savoir plusPOST /api/organization-invitations/{id}/message: Envoyer l’invitation d’organisation à l’invité par e-mail.
La charge utile prend en charge une propriété link afin que vous puissiez composer votre propre lien d’invitation basé sur l’ID de l’invitation. Par exemple :
{
"link": "https://your-app.com/invitation/join?id=your-invitation-id&token=your-one-time-token&email=invitee-email"
}