SSO-Google
SSO Google
Los usuarios pueden loguearse o crear una cuenta personal en auravant con la cuenta de google.
- larry creó las keys en la cuenta de auravant
- las keys de testing están creadas con mi cuenta, quizás se caigan si me dan de baja.
Signup
Si el usuario no tiene cuenta en auravant, podrá crearse una personal utilizando la cuenta de google.
- Si ya tiene usuario activo, sea personal o de espacio, el flujo arrojará error.
- Si tiene todos usuarios con invitaciones pendientes, el flujo arrojará error.
- Si no tiene ningún usuario, se creará uno personal.
- el usuario se crea con los datos de la cuenta de google y no tendrá contraseña seteada. Sólo podrá ingresar con google.
Signin
Es idéntico a ingresar usuario y contraseña. Si se realiza desde el login de un espacio, se intentará hacer el singin en ese espacio, sino correrá la logica de prioridades del login.
- Si la cuenta no tiene usuario activo en el espacio solicitado, arrojará error.
- Si la cuenta no existe en auravant, se creará un usuario personal, con la logica del Signup.
- Si la cuenta tiene al menos un usuario activo, lo logueará.
- Si la cuenta sólo tiene usuarios pendientes de aceptar una invitacion (espacios), arrojará error.
- Si la cuenta tiene todos los usuarios activos suspendidos, arrojará error.
Flujo:
Desde el accounts /register o /login, el boton de "continuar con google" debe redirigir al usuario a la siguiente url:
API_URL/api/auth/integrations/google ? context=CONTEXT & locale=LOCALE & subdomain=SUBDOMAIN
Donde los parámetros son:
- CONTEXT:
signinsi llama desde /login osignupsi llama desde /register - LOCALE: el locale que corresponde
- SUBDOMAIN: el subdominio del espacio. EN caso de no haber subdominio, no enviar
Menú usuario.
Desde el menú de configuración, el usuario puede ver el estado de la vinculación con la cuenta de google. Será importante ver si el usuario tiene contraseña seteada.
- En caso que no tenga vinculada la cuenta, no se muestra nada.
- En caso que tenga vinculada la cuenta, se le debe permitir cancelar la integración.
- Será posible cancelar la integración sólo si tiene seteada la contraseña. Por lo tanto, si no la tiene, deberá setearla primero.
- Si el usuario no tiene contraseña seteada, bloquear o esconder los campos de modificar contraseña.
Para esto, se obtiene el estado en:
GET API_URL/api/auth/integrations/google/status
Respuesta:
{
"google_sso": bool,
"password_set": bool
}
Para modificar la contraseña se utiliza la API ya existente de cambio de contraseña.
Para desvincular la cuenta de google:
DELETE API_URL/api/auth/integrations/google/status
Errores: Si la cuenta no está integrada o la contraseña no esta seteada
{
"code": "GOOGLE_SSO_INVALID_REMOVAL"
}