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": "I forgot my password/username",
"newHere": "New to the community? You can create an account",
"createAccount": "here"
},
"Account": {
"title": "My account",
"bnetAccount": "Account (Battle.net)",
"gameAccount": "Game account",
"logout": "Log out"
},
"SelectAccount": {
"title": "Select your game account",
"loggedInAs": "Logged in as",
"choose": "Your Battle.net account has several game accounts. Choose which one to continue with:",
"noAccounts": "No game accounts were found linked to this Battle.net account.",
"entering": "Entering…",
"error": "The account could not be selected."
}
}