Mailmus
Auth

Organizations (B2B)

Comptes d'équipe self-service pour vos utilisateurs finaux — rôles, invitations, contexte actif.

Organizations permet à vos utilisateurs finaux d'appartenir à des organisations (entreprises, équipes), avec leurs propres membres et rôles. Un EndUser peut appartenir à plusieurs organisations ; une seule est active à la fois par session.

Désactivé par défaut — activez-le dans App → Authentification → Organizations (B2B).

Rôles

Trois rôles fixes : OWNER, ADMIN, MEMBER. Le créateur d'une organization en devient automatiquement OWNER.

Self-service (SDK navigateur)

const orgs = await auth.organizations.mine();
// OrganizationMembershipSummary[] — { id, name, role }

await auth.organizations.setActive(organizationId);
// Force un refresh de session : session.getState().organizationId reflète
// le changement dès que la promesse résout (les claims du token restent
// sinon périmés jusqu'au prochain refresh naturel).

await auth.organizations.clearActive();
await auth.organizations.leave(organizationId);

Invitations

// Aperçu d'une invitation sans être connecté — utile pour afficher
// "Vous êtes invité chez Acme" avant même le sign-up.
const preview = await auth.organizations.previewInvitation(token);

// Acceptation — nécessite une session active.
const membership = await auth.organizations.acceptInvitation(token);

Le contexte actif (claims orgId/orgRole) est inclus dans le token — si votre backend vérifie les JWT localement, vous le récupérez sans appel réseau supplémentaire.

Administration (SDK serveur)

Créer des organizations, gérer les membres et les invitations depuis votre backend avec le package mailmus et votre clé secrète :

import { SDK } from "mailmus";

const mailmus = new SDK({ bearer: process.env.MAILMUS_SECRET_KEY });

await mailmus.organizations.organizationsCreate({ appId, name: "Acme Inc." });
await mailmus.organizations.organizationsUpdate({ appId, organizationId, name: "Acme Corp" });
await mailmus.organizationMembers.organizationMembersRemove({ appId, organizationId, endUserId });
await mailmus.organizationInvitations.organizationInvitationsList({ appId, organizationId });

SSO/SAML

Pour les organizations qui exigent une connexion via leur propre Identity Provider (Okta, Azure AD...), voir la Référence API — configuration par organization via des connexions SSO dédiées, avec Home Realm Discovery (auth.sso.start()) déclenché automatiquement quand l'email de l'utilisateur correspond à un domaine configuré.

Suivant

  • Sessions — appareils connectés, organizationId dans les tokens.
  • Référence API — endpoints organizations/*.

On this page