add func deleteExpiredSessions

master
Alex 2021-05-22 21:48:28 +02:00
parent 0402892963
commit 5f1d06311f
1 changed files with 26 additions and 10 deletions

View File

@ -264,23 +264,22 @@ func isSessionIdValid(sessionId string) (bool, error) {
db, err := database.GetDatabase()
if db == nil || err != nil {
log.Warn("DB error:", err)
return false, err
}
defer db.Close()
var expires string
deleteExpiredSessions(db)
err = db.QueryRow("SELECT session_id, expires FROM sessions WHERE session_id = ?", sessionId).Scan(&sessionId, &expires)
err = db.QueryRow("SELECT session_id FROM sessions WHERE session_id = ?", sessionId).Scan(&sessionId)
if err == sql.ErrNoRows {
return false, nil
}
t, err := time.Parse("2006-01-02 15:04:05", expires)
/*sessionExpires, err := time.Parse("2006-01-02 15:04:05", expires)
log.Infoln("expires", expires, time.Now().Add(time.Hour*73).Unix(), t.Unix())
log.Infoln("expires", expires, time.Now().Add(time.Hour*72).Unix(), sessionExpires.Unix())
if err != nil {
log.Warn("Failed to parse session datetime", err)
@ -288,14 +287,14 @@ func isSessionIdValid(sessionId string) (bool, error) {
}
// session has expired
if time.Now().Add(time.Hour*73).Unix() > t.Unix() {
if time.Now().Unix() > sessionExpires.Unix() {
log.Info("bigger")
deleteSession(db, sessionId)
return false, err
}
log.Info("not bigger")
log.Info("not bigger") */
return true, nil
}
@ -303,10 +302,24 @@ func deleteSession(db *sql.DB, sessionId string) {
res, err := db.Exec("DELETE FROM sessions WHERE session_id = ?", sessionId)
if err != nil {
log.Infoln("err delete session", err)
log.Warnln("err deleting session:", err)
}
log.Infoln("delete session res", res)
a, b := res.RowsAffected()
log.Debugln("delete session res", a, b)
}
func deleteExpiredSessions(db *sql.DB) {
res, err := db.Exec("DELETE FROM `sessions` WHERE expires < CURRENT_TIMESTAMP()")
if err != nil {
log.Warnln("err deleting expired sessions:", err)
}
a, b := res.RowsAffected()
log.Debugln("Delete expired sessions:", a, b)
}
func createUserSession(db *sql.DB, userId string, ip string, userAgent string) (string, error) {
@ -334,6 +347,7 @@ func createUserSession(db *sql.DB, userId string, ip string, userAgent string) (
func getExpiresTime() time.Time {
// TODO: db default
return time.Now().Add(time.Hour * 72)
}
@ -442,9 +456,11 @@ func GetUsers(c *fiber.Ctx) error {
// c.Params("id")
if db == nil || err != nil {
return c.SendString("db error")
return c.SendStatus(fiber.StatusInternalServerError)
}
defer db.Close()
list := []string{}
var (