Skip to content

feat(features): agregar login con correo/contraseña vía Supabase Auth - #42

Merged
Zenxlk merged 2 commits into
mainfrom
dev/fase7-email-password-auth
Aug 3, 2026
Merged

feat(features): agregar login con correo/contraseña vía Supabase Auth#42
Zenxlk merged 2 commits into
mainfrom
dev/fase7-email-password-auth

Conversation

@Zenxlk

@Zenxlk Zenxlk commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Resumen

  • Cierra Login con correo/contraseña vía Supabase Auth #27: hoy SupabaseAuthService solo tenía signInAnonymously()
    (Fase 7) — un jugador anónimo pierde su identidad y su historial de
    partidas si desinstala la app o cambia de dispositivo.
  • SupabaseAuthService gana signUpAndLinkAnonymous (vincula
    correo/contraseña a la sesión anónima activa con updateUser,
    conserva el mismo playerId/historial en vez de crear una cuenta
    aparte — distinto de linkIdentity, que es para proveedores OAuth),
    signInWithPassword (reemplaza la sesión anónima por la de una cuenta
    ya existente, recuperando su historial), signOut y
    resetPasswordForEmail.
  • AuthSessionNotifier expone esos métodos y solo actualiza state si
    tienen éxito — si fallan, la excepción llega a la pantalla para
    mostrar el error sin invalidar la sesión (anónima) que ya estaba
    activa.
  • Tres pantallas nuevas en features/auth/presentation/screens/
    (AccountScreen, SignUpScreen, LoginScreen, con recuperación de
    contraseña vía diálogo), accesibles desde una sección "Cuenta" nueva
    en Ajustes solo si Supabase está configurado — la app sigue
    arrancando 100% invitada por default, este login es opt-in.
  • Login con Google queda explícitamente fuera de alcance (issue aparte,
    mencionada en la propia Login con correo/contraseña vía Supabase Auth #27).
  • docs/ARCHITECTURE.md/ROADMAP.md actualizados; bump de versión a
    0.8.0+54 en commit aparte.

Test plan

  • test/features/auth/data/supabase_auth_service_test.dart: los 4
    métodos nuevos contra SupabaseClient/GoTrueClient mockeados
    (mocktail) — incluye verificar que updateUser recibe el
    UserAttributes correcto.
  • test/features/auth/presentation/providers/auth_providers_test.dart:
    AuthSessionNotifier end-to-end contra los mismos dobles, incluyendo
    el caso de error (el state conserva la sesión previa).
  • Pantallas nuevas (account_screen_test.dart, sign_up_screen_test.dart,
    login_screen_test.dart): flujo de invitado → crear cuenta / iniciar
    sesión, validación de contraseñas que no coinciden, AuthException
    mostrado inline, recuperar contraseña.
  • SettingsScreen: la sección "Cuenta" solo aparece con Supabase
    configurado y navega a AccountScreen.
  • flutter analyze --fatal-infos, dart format --set-exit-if-changed,
    flutter test completo (385 tests) — todo verde.
  • Prueba manual contra un proyecto Supabase real (crear cuenta,
    iniciar sesión, recuperar contraseña, cerrar sesión, comportamiento
    según el toggle "Confirm email"): a cargo del mantenedor, no
    reproducible desde este entorno.

Zenxlk added 2 commits August 2, 2026 21:42
… (issue #27)

SupabaseAuthService gana signUpAndLinkAnonymous (vincula correo/
contraseña a la sesión anónima activa con updateUser — conserva el
mismo playerId/historial en vez de crear una cuenta aparte, distinto
de linkIdentity que es para proveedores OAuth), signInWithPassword
(reemplaza la sesión anónima por la de una cuenta ya existente),
signOut y resetPasswordForEmail. AuthSessionNotifier expone esos
métodos sin tocar `state` si fallan, para no invalidar la sesión
activa mientras la pantalla muestra el error.

Tres pantallas nuevas en features/auth/presentation/screens/
(AccountScreen, SignUpScreen, LoginScreen), accesibles desde una
sección "Cuenta" nueva en Ajustes solo si Supabase está configurado
— la app sigue arrancando 100% invitada por default, este login es
opt-in. Login con Google queda para una issue aparte.
@Zenxlk Zenxlk added ✨ enhancement Nueva funcionalidad o mejora 🧩 features features/ — UI y providers por feature labels Aug 3, 2026
@Zenxlk Zenxlk self-assigned this Aug 3, 2026
@Zenxlk
Zenxlk merged commit cccfe61 into main Aug 3, 2026
1 of 2 checks passed
@Zenxlk Zenxlk linked an issue Aug 4, 2026 that may be closed by this pull request
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ enhancement Nueva funcionalidad o mejora 🧩 features features/ — UI y providers por feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Login con correo/contraseña vía Supabase Auth

1 participant