fix: corriger bug multi-sessions (upsertUser wrong ID + schema repair + logs refresh)
- auth.go: upsertUser utilise toujours SELECT explicite au lieu de LastInsertId() qui retournait un rowid obsolète pour ON CONFLICT DO UPDATE sur ligne existante - auth.go: vérifier l'erreur de l'INSERT refresh_tokens (était silencieusement ignorée) - auth.go: logs détaillés dans Refresh handler pour diagnostiquer les 401 - db.go: repairSchema() ajoute les colonnes manquantes (ip, last_used_at) dans les bases où migration 002 était partiellement appliquée (ancien bug multi-statements) - app.js: tryRefresh et fetchMe affichent le vrai message d'erreur du backend Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dc0c67b89c
commit
95757124de
3 changed files with 88 additions and 19 deletions
|
|
@ -177,9 +177,10 @@ document.addEventListener('alpine:init', () => {
|
|||
await this.tryRefresh()
|
||||
} else {
|
||||
// Erreur inattendue (404, 500…) — signaler + tenter quand même
|
||||
console.error(`[auth/me] HTTP ${res.status}`)
|
||||
const body = await res.json().catch(() => ({}))
|
||||
console.error(`[auth/me] HTTP ${res.status}`, body.error || '')
|
||||
Alpine.store('toasts').error(
|
||||
`Erreur serveur (${res.status}) sur /api/auth/me — le backend est-il démarré ?`
|
||||
`Erreur ${res.status} sur /api/auth/me : ${body.error || 'voir console'}`
|
||||
)
|
||||
await this.tryRefresh()
|
||||
}
|
||||
|
|
@ -193,15 +194,14 @@ document.addEventListener('alpine:init', () => {
|
|||
localStorage.setItem('pxp_token', data.access_token)
|
||||
await this.fetchMe()
|
||||
} else {
|
||||
// Session expirée ou révoquée → notifier via sessionStorage (visible sur la page login)
|
||||
// Lire le vrai message d'erreur du backend pour le diagnostic
|
||||
const body = await res.json().catch(() => ({}))
|
||||
const serverMsg = body.error || `HTTP ${res.status}`
|
||||
const page = window.location.pathname.replace(/^\/|\.html$/g, '')
|
||||
if (page !== 'login' && page !== 'install' && page !== 'index' && page !== '') {
|
||||
sessionStorage.setItem('pxp_auth_notice',
|
||||
res.status === 401
|
||||
? 'Session expirée ou révoquée — veuillez vous reconnecter'
|
||||
: `Erreur ${res.status} lors du renouvellement de session`
|
||||
)
|
||||
sessionStorage.setItem('pxp_auth_notice', `Refresh échoué : ${serverMsg}`)
|
||||
}
|
||||
console.error('[auth/tryRefresh]', res.status, serverMsg)
|
||||
this.clear()
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue