fix: GetSessions scan robuste (sql.NullString) + formatDate adaptatif
- Scan des colonnes datetime via sql.NullString au lieu de time.Time pour éviter les échecs silencieux dus aux formats mixtes SQLite (CURRENT_TIMESTAMP vs RFC3339) - Log explicite si un scan échoue (au lieu du continue silencieux) - formatDate frontend adapte le format SQLite "YYYY-MM-DD HH:MM:SS" en ISO pour new Date() Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
95757124de
commit
1cbd7e9d17
2 changed files with 20 additions and 13 deletions
|
|
@ -359,23 +359,27 @@ func (h *AuthHandler) GetSessions(w http.ResponseWriter, r *http.Request) {
|
|||
defer rows.Close()
|
||||
|
||||
type Session struct {
|
||||
ID int64 `json:"id"`
|
||||
UserAgent string `json:"user_agent"`
|
||||
IP string `json:"ip"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
LastUsedAt *time.Time `json:"last_used_at"`
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
ID int64 `json:"id"`
|
||||
UserAgent string `json:"user_agent"`
|
||||
IP string `json:"ip"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
LastUsedAt *string `json:"last_used_at"`
|
||||
ExpiresAt string `json:"expires_at"`
|
||||
}
|
||||
|
||||
sessions := []Session{}
|
||||
for rows.Next() {
|
||||
var s Session
|
||||
var lastUsed sql.NullTime
|
||||
if err := rows.Scan(&s.ID, &s.UserAgent, &s.IP, &s.CreatedAt, &lastUsed, &s.ExpiresAt); err != nil {
|
||||
var createdAt, expiresAt sql.NullString
|
||||
var lastUsedAt sql.NullString
|
||||
if err := rows.Scan(&s.ID, &s.UserAgent, &s.IP, &createdAt, &lastUsedAt, &expiresAt); err != nil {
|
||||
log.Printf("[GetSessions] scan error userID=%d: %v", claims.UserID, err)
|
||||
continue
|
||||
}
|
||||
if lastUsed.Valid {
|
||||
s.LastUsedAt = &lastUsed.Time
|
||||
s.CreatedAt = createdAt.String
|
||||
s.ExpiresAt = expiresAt.String
|
||||
if lastUsedAt.Valid && lastUsedAt.String != "" {
|
||||
s.LastUsedAt = &lastUsedAt.String
|
||||
}
|
||||
sessions = append(sessions, s)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue