ServiceLogin

Dernière mise à jour : 3 juillet 2026

ServiceLogin est la configuration qui permet à un Space d'inscrire et de connecter les end-users (ServiceUser) de son propre produit via OAuth. C'est le point d'entrée qui rattache au produit un système d'identité distinct du compte de plateforme Weegloo (le Weegloo User qui se connecte au studio de contenu). Le membre inscrit par cette configuration reçoit le rôle par défaut (defaultRole) de la ServiceLogin, et le token de ce membre s'authentifie auprès d'ACMA/ACDA.

Un Space ne possède qu'au maximum une seule ServiceLogin. Si vous rappelez la création (POST) alors qu'elle existe déjà, WGL409003 (409 Conflict) est renvoyé. C'est pourquoi la lecture récupère elle aussi cette unique configuration en tant qu'élément unitaire via GET .../service-login, sans loginId (il n'existe pas d'endpoint de liste).

Structure de la ressource

Voici la réponse pour une ServiceLogin. Outre sys (propriétés système), elle possède les propriétés de corps name, callbackUrl, contactEmail et approvalRequired, qui portent les informations d'affichage du service et le comportement d'inscription.

{
  "sys": {
    "id": "3trmXRM3RqbgSnifyg7PSlgn01Ex",
    "type": "ServiceLogin",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "defaultRole": { "sys": { "id": "3trmXRLXeZN2RTHvVj3hFDN5546vbp", "type": "Refer", "targetType": "ServiceUserRole" } },
    "providers": [
      { "registrationId": "google", "clientId": "821047-dailywear.apps.googleusercontent.com" }
    ],
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-18T12:55:00.000Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-18T12:55:00.000Z",
    "version": 1
  },
  "name": "Adhésion DailyWear",
  "callbackUrl": "https://dailywear.example/auth/callback",
  "contactEmail": "members@dailywear.example",
  "approvalRequired": false
}

Clés principales :

  • defaultRole : le Refer du ServiceUserRole attribué par défaut au membre nouvellement inscrit. Si un membre a besoin d'un rôle différent, on le remplace via roleOverride du ServiceUser.
  • providers : la liste des fournisseurs OAuth pris en charge par ce service. Chaque entrée se compose de registrationId, clientId et clientSecret. La réponse ne contient pas clientSecret.
  • callbackUrl : l'URL vers laquelle le membre est redirigé après avoir terminé la connexion OAuth. Le token d'échange (exchangeToken) est ajouté à cette URL sous forme de chaîne de requête au retour.
  • approvalRequired : lorsqu'il est activé, le nouveau membre s'inscrit avec la connexion désactivée (enableLogin=false) et nécessite l'approbation d'un administrateur.

Propriétés système (sys)

Toute ServiceLogin porte les propriétés système communes dans l'objet sys. space, defaultRole, createdBy et updatedBy se présentent sous la forme Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).

PropriétéTypeDescription
idstringIdentifiant unique de la ressource.
typestringType de ressource. Pour ServiceLogin, toujours "ServiceLogin".
spaceRefer<Space>Le Space auquel appartient cette configuration.
defaultRoleRefer<ServiceUserRole>Le ServiceUserRole attribué par défaut au membre nouvellement inscrit.
providersTableau de ProviderListe des fournisseurs OAuth pris en charge. Les entrées de la réponse ne contiennent pas clientSecret.
createdByRefer<User>Le Weegloo User qui a créé cette configuration.
createdAtstring (date-time)Date et heure de création.
updatedByRefer<User>Le Weegloo User qui a modifié la configuration en dernier.
updatedAtstring (date-time)Date et heure de la dernière modification.
versionintegerVersion de la ressource. À placer dans l'en-tête X-Weegloo-Version lors d'une modification.

ServiceLogin étant une ressource de configuration, elle n'a pas de notion de publication. Elle ne possède ni publish, ni archive, ni status ; elle ne possède que version, pour éviter les conflits de modification concurrente.

Propriétés de corps et provider

PropriétéTypeDescription
namestringNom d'affichage du service.
callbackUrlstringURL de redirection après la connexion OAuth. Le exchangeToken y est ajouté en tant que requête au retour.
contactEmailstringE-mail de contact de l'administrateur du service.
approvalRequiredbooleanSi true, le nouveau membre démarre avec enableLogin=false et nécessite l'approbation d'un administrateur. La valeur par défaut est false.

providers

providers est la liste des fournisseurs OAuth pris en charge par ce service. Chaque provider se compose des trois valeurs suivantes.

PropriétéTypeDescription
registrationIdstringIdentifiant du fournisseur OAuth. Actuellement, google, github, facebook, gitlab, kakao, naver et line sont pris en charge.
clientIdstringL'identifiant client délivré par ce fournisseur.
clientSecretstringLe secret client délivré par ce fournisseur. En écriture seule, il n'apparaît pas dans la réponse.

Actuellement, les registrationId pour lesquels WEEGLOO a connecté des endpoints OAuth sont au nombre de sept : google, github, facebook, gitlab, kakao, naver et line. La connexion ne fonctionne pas avec d'autres valeurs.

Un provider peut être inclus directement dans le corps de création de la ServiceLogin, ou géré séparément via les endpoints d'ajout, de modification et de suppression de provider ci-dessous. Le corps de modification (PUT) de la ServiceLogin ne contient pas providers ; on gère donc les providers d'une configuration déjà créée au moyen des endpoints dédiés.

Une ServiceLogin doit toujours conserver au moins un provider, et peut en avoir jusqu'à dix. Lors de la création, vous devez en placer au moins un dans providers. Le dernier provider restant ne peut pas être supprimé : toute tentative de suppression renvoie WGL422055 (422). Pour retirer tous les providers, supprimez la ServiceLogin elle-même.

Enregistrement de l'URI de redirection

Lorsque vous créez l'application OAuth dans la console de chaque provider (Google, GitHub, Facebook, GitLab, Kakao, Naver, LINE), vous devez enregistrer l'URI de redirection autorisée (redirect URI) avec exactement la même valeur que celle utilisée par WEEGLOO. Si la valeur diffère, la connexion échoue avec redirect_uri mismatch.

L'URI à enregistrer suit le format suivant.

https://auth.weegloo.com/v1/spaces/{spaceId}/login/oauth2/code/{registrationId}

  • {spaceId} : le sys.id du Space auquel appartient cette ServiceLogin.
  • {registrationId} : l'identifiant du provider (google, github, facebook, gitlab, kakao, naver, line).

Par exemple, pour rattacher Google au Space HnQ32YiH, vous enregistrez https://auth.weegloo.com/v1/spaces/HnQ32YiH/login/oauth2/code/google.

API

L'URL de base de tous les endpoints ci-dessous est https://cma.weegloo.com/v1, et un token Bearer authentifiant CMA est requis dans l'en-tête Authorization. Les endpoints de modification (PUT, PATCH) et de gestion des providers doivent transporter le sys.version courant dans l'en-tête X-Weegloo-Version afin d'éviter les conflits de modification concurrente. La création et la suppression de ServiceLogin ne portent pas cet en-tête. La lecture récupère l'unique ServiceLogin de ce Space, sans loginId.

  • ServiceUserRole : l'ensemble de permissions à attribuer via defaultRole.
  • ServiceUser : le membre inscrit par cette configuration.
  • Auth API : le flux de connexion OAuth et d'échange de token du membre.