ServiceLogin

Última actualización: 3 de julio de 2026

ServiceLogin es la configuración con la que un Space permite que los end-user (ServiceUser) de su propio producto se registren e inicien sesión mediante OAuth. Es el punto de entrada para acoplar al producto un sistema de identidad independiente de la cuenta de plataforma de Weegloo (el Weegloo User que inicia sesión en el estudio de contenidos). Los miembros que se registran con esta configuración reciben el rol predeterminado de ServiceLogin (defaultRole), y su token se autentica frente a ACMA/ACDA.

En un Space solo existe como máximo un ServiceLogin. Si vuelve a llamar a la creación (POST) cuando ya existe, se devuelve WGL409003 (409 Conflict). Por eso la consulta también obtiene ese único elemento de forma individual mediante GET .../service-login, sin loginId (no hay un endpoint de lista).

Estructura del recurso

A continuación se muestra la respuesta de un ServiceLogin. Junto con sys (propiedades del sistema), tiene las propiedades del cuerpo name, callbackUrl, contactEmail y approvalRequired, que contienen la información de presentación del servicio y el comportamiento de registro.

{
  "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": "Membresía DailyWear",
  "callbackUrl": "https://dailywear.example/auth/callback",
  "contactEmail": "members@dailywear.example",
  "approvalRequired": false
}

Claves principales:

  • defaultRole: el Refer del ServiceUserRole que recibe por defecto cada miembro recién registrado. Si un miembro necesita un rol distinto, se sobrescribe con el roleOverride del ServiceUser.
  • providers: lista de proveedores OAuth que admite este servicio. Cada elemento se compone de registrationId, clientId y clientSecret. En la respuesta no aparece clientSecret.
  • callbackUrl: la URL a la que se redirige al miembro tras completar el inicio de sesión OAuth. A esta URL se le adjunta el token de intercambio (exchangeToken) como cadena de consulta al regresar.
  • approvalRequired: si se activa, los miembros nuevos se registran con el inicio de sesión desactivado (enableLogin=false) y requieren la aprobación del administrador.

Propiedades del sistema (sys)

Todo ServiceLogin contiene las propiedades del sistema comunes en el objeto sys. space, defaultRole, createdBy y updatedBy se incluyen con la forma Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).

PropiedadTipoDescripción
idstringIdentificador único del recurso.
typestringTipo de recurso. Para ServiceLogin siempre es "ServiceLogin".
spaceRefer<Space>El Space al que pertenece esta configuración.
defaultRoleRefer<ServiceUserRole>El ServiceUserRole que reciben por defecto los miembros recién registrados.
providersArray de ProviderLista de proveedores OAuth admitidos. Los elementos de la respuesta no incluyen clientSecret.
createdByRefer<User>El Weegloo User que creó esta configuración.
createdAtstring (date-time)Momento de creación.
updatedByRefer<User>El Weegloo User que la modificó por última vez.
updatedAtstring (date-time)Momento de la última modificación.
versionintegerVersión del recurso. Se incluye en la cabecera X-Weegloo-Version al modificar.

ServiceLogin es un recurso de configuración, por lo que no tiene el concepto de publicación. No tiene publish, archive ni status; solo tiene version para evitar conflictos de modificación concurrente.

Propiedades del cuerpo y provider

PropiedadTipoDescripción
namestringNombre de presentación del servicio.
callbackUrlstringURL a la que se redirige tras completar el inicio de sesión OAuth. A esta URL se le adjunta exchangeToken como consulta al regresar.
contactEmailstringCorreo de contacto del administrador del servicio.
approvalRequiredbooleanSi es true, los miembros nuevos comienzan con enableLogin=false y requieren la aprobación del administrador. El valor predeterminado es false.

providers

providers es la lista de proveedores OAuth que admite este servicio. Cada provider se compone de los tres valores siguientes.

PropiedadTipoDescripción
registrationIdstringIdentificador del proveedor OAuth. Actualmente se admiten google, github, facebook, gitlab, kakao, naver y line.
clientIdstringEl ID de cliente emitido por ese proveedor.
clientSecretstringEl secreto de cliente emitido por ese proveedor. Es de solo escritura, por lo que no aparece en la respuesta.

Actualmente, los registrationId para los que WEEGLOO tiene conectados sus endpoints OAuth son siete: google, github, facebook, gitlab, kakao, naver y line. El inicio de sesión no funciona con otros valores.

Los provider se pueden incluir en el cuerpo de creación de ServiceLogin, o gestionarse por separado con los endpoints de añadir, modificar y eliminar provider que se describen más abajo. El cuerpo de modificación (PUT) de ServiceLogin no contiene providers, así que los provider de una configuración ya creada se manejan con endpoints dedicados.

ServiceLogin debe tener siempre al menos un provider, y puede tener como máximo 10. Al crearlo, debe incluir al menos uno en providers. El último provider que queda no se puede eliminar, y si intenta eliminarlo se devuelve WGL422055 (422). Para quitar todos los provider, elimine el propio ServiceLogin.

Registro de la URI de redirección

Al crear la aplicación OAuth en la consola de cada provider (Google, GitHub, Facebook, GitLab, Kakao, Naver, LINE), debe registrar la URI de redirección autorizada (redirect URI) con el mismo valor que usa WEEGLOO. Si el valor es distinto, el inicio de sesión falla con redirect_uri mismatch.

La URI que se registra tiene el siguiente formato.

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

  • {spaceId}: el sys.id del Space al que pertenece este ServiceLogin.
  • {registrationId}: el identificador del provider (google, github, facebook, gitlab, kakao, naver, line).

Por ejemplo, si conecta Google al Space HnQ32YiH, registra https://auth.weegloo.com/v1/spaces/HnQ32YiH/login/oauth2/code/google.

API

La URL base de todos los endpoints siguientes es https://cma.weegloo.com/v1, y se requiere un token Bearer que autentique frente a CMA en la cabecera Authorization. Los endpoints de modificación (PUT y PATCH) y de gestión de provider deben enviar la sys.version actual en la cabecera X-Weegloo-Version para evitar conflictos de modificación concurrente. La creación y la eliminación de ServiceLogin no llevan esta cabecera. La consulta obtiene el único ServiceLogin de ese Space sin loginId.

  • ServiceUserRole: el conjunto de permisos que se concede mediante defaultRole.
  • ServiceUser: los miembros que se registran con esta configuración.
  • Auth API: el flujo de inicio de sesión OAuth e intercambio de tokens de los miembros.