Cierra el flujo de login: logout, selector de cuenta y /account con guardas

- Route handlers: /api/auth/logout (destroy sesión), /api/auth/select-account
  (fija la cuenta de juego elegida, valida que pertenece a la bnet en sesión).
- app/[locale]/select-account: página SSR (guarda: sin bnetId -> login) + lista de
  cuentas de juego (SelectAccountForm cliente) -> /account.
- app/[locale]/account: página protegida (sin bnetId -> login; sin username ->
  select-account) con datos de sesión + LogoutButton.
- Textos en messages (Account, SelectAccount).

Verificado: guardas locale-aware (ES /account -> /login, EN /en/account -> /en/login,
307), logout OK, select-account sin sesión 401. Redirect i18n con next-intl.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 22:46:42 +00:00
parent 60c2e44afd
commit e00a439dd9
8 changed files with 220 additions and 0 deletions
+14
View File
@@ -30,5 +30,19 @@
"forgot": "He olvidado mi contraseña/usuario",
"newHere": "¿Nuevo en la comunidad? Puedes crear una cuenta",
"createAccount": "aquí"
},
"Account": {
"title": "Mi cuenta",
"bnetAccount": "Cuenta (Battle.net)",
"gameAccount": "Cuenta de juego",
"logout": "Cerrar sesión"
},
"SelectAccount": {
"title": "Selecciona tu cuenta de juego",
"loggedInAs": "Conectado como",
"choose": "Tu cuenta Battle.net tiene varias cuentas de juego. Elige con cuál quieres continuar:",
"noAccounts": "No se han encontrado cuentas de juego asociadas a esta cuenta Battle.net.",
"entering": "Entrando…",
"error": "No se pudo seleccionar la cuenta."
}
}