Login de clientes
Cada cliente inicia sesión en la página de La Vitrina y vuelve a tu sitio con su token del cliente. Se usa el estándar OpenID Connect con el flujo de código de autorización con PKCE, que no necesita secreto, así que puede hacerse desde el navegador. Funciona con cualquier librería OpenID Connect.
Direcciones
Sección titulada «Direcciones»Los clientes usan su propio espacio, tienda-clientes (distinto del de la tienda):
| Qué | Dirección |
|---|---|
| Descubrimiento | https://auth.lavitrina-online.com/realms/tienda-clientes/.well-known/openid-configuration |
| Autorización | https://auth.lavitrina-online.com/realms/tienda-clientes/protocol/openid-connect/auth |
| Token | https://auth.lavitrina-online.com/realms/tienda-clientes/protocol/openid-connect/token |
| Cerrar sesión | https://auth.lavitrina-online.com/realms/tienda-clientes/protocol/openid-connect/logout |
Datos de tu sitio
Sección titulada «Datos de tu sitio»| Dato | Valor |
|---|---|
client_id |
El Client ID (login de clientes) de la sección Desarrollador: sf-TU_STORE_ID-login. |
redirect_uri |
Una de las direcciones de regreso que escribiste en Desarrollador, exactamente igual. |
Paso a paso
Sección titulada «Paso a paso»-
Genera el par PKCE. Crea un
code_verifieraleatorio (entre 43 y 128 caracteres) y calcula elcode_challengecomoBASE64URL(SHA256(code_verifier)). -
Envía al cliente a la pantalla de inicio de sesión:
https://auth.lavitrina-online.com/realms/tienda-clientes/protocol/openid-connect/auth?client_id=sf-TU_STORE_ID-login&redirect_uri=https://mitienda.com/callback&response_type=code&scope=openid&code_challenge=CODE_CHALLENGE&code_challenge_method=S256&state=VALOR_ALEATORIO -
Recibe el código. El cliente vuelve a tu
redirect_uricon?code=...&state=.... Comprueba questatees el que enviaste. -
Cambia el código por el token:
Ventana de terminal curl -X POST "https://auth.lavitrina-online.com/realms/tienda-clientes/protocol/openid-connect/token" \-H "Content-Type: application/x-www-form-urlencoded" \-d "grant_type=authorization_code" \-d "client_id=sf-TU_STORE_ID-login" \-d "redirect_uri=https://mitienda.com/callback" \-d "code=CODIGO_RECIBIDO" \-d "code_verifier=CODE_VERIFIER" -
Llama a Datos del cliente con el token. Así el cliente queda vinculado a tu tienda aunque se haya registrado en otra.
Respuesta 200
Sección titulada «Respuesta 200»{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 120, "refresh_expires_in": 1800, "refresh_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9...", "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "scope": "openid profile email"}| Campo | Descripción |
|---|---|
access_token |
El token del cliente. Va en cada petición de sus rutas. Dura 2 minutos. |
refresh_token |
Pide un token nuevo sin que el cliente inicie sesión otra vez. Mira Renovar el token. |
refresh_expires_in |
Segundos que dura el refresh_token. |