Código de autorización con PKCE
Cómo un cliente conecta su cuenta de Ryde con tu aplicación.
PRÓXIMAMENTE — aún no está en servicio.
Your application
|
| redirect, with state + code_challenge
v
auth.ryde.us.com ----> customer signs in to Ryde
| (you never see credentials)
v
Consent screen: the scopes you asked for, in plain language
|
| customer approves
v
redirect back with ?code=... &state=...
|
| POST /oauth/token (+ code_verifier)
v
access_token (30 min, scoped) + refresh_token (rotating)
Requisitos
- Las URIs de redirección se comparan EXACTAMENTE con lo registrado. Sin comodines, sin prefijos de ruta, solo https. Una discrepancia se rechaza en Ryde en lugar de redirigir, para que un atacante no pueda usar tu client_id para desviar un código.
- PKCE (S256) es obligatorio para clientes públicos —apps móviles, SPA, cualquier cosa que no pueda guardar un secreto— y se acepta para todos. Úsalo siempre.
- state es obligatorio y debes verificarlo al regresar. Es tu defensa CSRF, no un campo de conveniencia.
- Los códigos de autorización son de un solo uso y expiran en 60 segundos. Un código reutilizado se rechaza.
- Los tokens de refresco rotan: cada refresco devuelve uno nuevo e invalida el anterior. Guarda el más reciente y descarta el previo.
Desconexión
Un cliente puede revocar tu aplicación desde su cuenta de Ryde en cualquier momento, y tú puedes revocar tus propios tokens en /oauth/revoke. La revocación se aplica a la CONCESIÓN, así que surte efecto de inmediato para todos los tokens emitidos bajo ella en lugar de esperar a que uno expire.
Los tokens de acceso son cortos (30 minutos) y la concesión detrás de ellos se verifica en cada solicitud. Ante un 401, refresca una vez; si el refresco también falla, el cliente te desconectó y debe pasar por el flujo de nuevo en vez de reintentar en bucle.