Rejoindre une organisation suggérée
POST /fapi/v1/me/organization-suggestions/{domain_id}:join · appelé depuis l'hôte de connexion de l'environnement
Accepte une suggestion issue de Lister mes suggestions d'organisation : l'utilisateur authentifié devient membre de l'organisation suggérée avec le rôle de membre par défaut de l'environnement. La source de l'adhésion est domain_capture et l'utilisateur est enregistré comme auteur de l'action ; un événement organization_membership.created est envoyé. En cas de deux adhésions simultanées, une seule réussit. L'adhésion ne nécessite pas de session récemment vérifiée : elle n'accorde que le rôle de membre par défaut, et uniquement pour un domaine dont l'adresse e-mail a été vérifiée par l'utilisateur. Nécessite le cookie __Host-idp_session de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie 401 unauthenticated. Une application de première partie sur une autre origine peut à la place envoyer son jeton d'accès à l'API front (Authorization: DPoP <token> avec une preuve DPoP ; voir Jeton d'accès à l'API front).
Avec @keenauth/js : await keenauth.organizations.joinSuggestion(id).
Requête
En-têtes :
| En-tête | Obligatoire | Description |
|---|---|---|
Idp-Client |
oui | Identifiant du SDK. |
Origin |
oui | Doit être exactement https://<hôte de connexion>. |
domain_id : l'id de la suggestion (odm_…).
Aucun corps (un objet JSON vide est accepté).
Réponse
200 OK avec {"membership_id": "mem_…", "organization_id": "org_…"}.
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 401 | unauthenticated |
Aucun cookie de session ni jeton d'accès à l'API front valide. |
| 403 | origin_not_allowed |
Origin est absent ou incorrect. |
| 403 | role_not_assignable |
Le rôle de membre par défaut ne peut pas être accordé par capture de domaine. |
| 403 | user_not_active |
L'utilisateur n'est pas actif. |
| 404 | not_found |
Le domaine n'est pas une suggestion pour cet utilisateur (inconnu, mal formé, pas en mode suggest, sans adresse e-mail vérifiée dans ce domaine, ou ignoré trois fois). |
| 409 | membership_already_exists |
L'utilisateur est déjà membre de l'organisation. |
| 409 | organization_disabled |
L'organisation est désactivée ou en cours de suppression. |
| 409 | membership_limit_reached |
L'utilisateur a atteint sa limite d'adhésions. |
| 409 | organization_membership_limit_reached |
L'organisation a atteint sa limite de membres. |
| 503 | temporarily_unavailable |
L'annuaire des adhésions n'a pas répondu ; réessayez plus tard. |
Exemple
curl -X POST https://example.keenauth.app/fapi/v1/me/organization-suggestions/odm_01j9a5c4000000000000000001:join \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-b cookies.txt
{
"membership_id": "mem_01j9yyyyyyyyyyyyyyyyyyyyyy",
"organization_id": "org_01j9xxxxxxxxxxxxxxxxxxxxxx"
}
Données personnelles
Cet point d'accès traite des données personnelles : adhésions et invitations aux organisations. Données personnelles dans les API KeenAuth décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez pas de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.