chore(webui): clear all expired sessions on each user account login
Closes #34
This commit is contained in:
parent
215c630ba0
commit
c483d909f9
2 changed files with 11 additions and 0 deletions
pkg
|
@ -27,6 +27,14 @@ func (db *DB) CreateSession(account *model.Account) (string, error) {
|
|||
return sessionId.String(), nil
|
||||
}
|
||||
|
||||
func (db *DB) DeleteExpiredSessions() error {
|
||||
_, err := db.Exec(`DELETE FROM sessions WHERE created < ?`, time.Now().Unix())
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to delete expired session: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DB) DeleteSession(session *model.Session) error {
|
||||
_, err := db.Exec(`DELETE FROM sessions WHERE id = ?`, session.Id)
|
||||
if err != nil {
|
||||
|
|
|
@ -91,6 +91,9 @@ func handleLoginPOST(db *database.DB) http.Handler {
|
|||
SameSite: http.SameSiteStrictMode,
|
||||
Secure: true,
|
||||
})
|
||||
if err := db.DeleteExpiredSessions(); err != nil {
|
||||
slog.Error("failed to delete expired sessions after user login", "err", err, "accountId", account.Id)
|
||||
}
|
||||
http.Redirect(w, r, "/", http.StatusFound)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue