From 56085c1b17b03f4f6a26542185ce01d4ab6477f8 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 30 May 2021 20:35:14 +0200 Subject: [PATCH] func isSessionIdValid works now --- routers/api/v1/user/user.go | 65 ++++++++----------------------------- 1 file changed, 13 insertions(+), 52 deletions(-) diff --git a/routers/api/v1/user/user.go b/routers/api/v1/user/user.go index f387eb1..b18242d 100644 --- a/routers/api/v1/user/user.go +++ b/routers/api/v1/user/user.go @@ -255,11 +255,7 @@ func SessionIdCheck(c *fiber.Ctx) error { return fiber.ErrUnauthorized } - valid, err := isSessionIdValid(sessionId) - - if err != nil { - return fiber.ErrInternalServerError - } + valid := isSessionIdValid(sessionId) if valid { return c.Next() @@ -268,37 +264,19 @@ func SessionIdCheck(c *fiber.Ctx) error { return fiber.ErrUnauthorized } -func isSessionIdValid(sessionId string) (bool, error) { - - //defer db.Close() - +func isSessionIdValid(sessionId string) bool { deleteExpiredSessions(database.DB) - /*err = db.QueryRow("SELECT session_id FROM sessions WHERE session_id = ?", sessionId).Scan(&sessionId) + var res string + var db = database.DB - if err == sql.ErrNoRows { - return false, nil + db.Raw("SELECT session_id FROM sessions WHERE session_id = ?", sessionId).Scan(&res) + + if res == "" { + return false + } else { + return true } - - sessionExpires, err := time.Parse("2006-01-02 15:04:05", expires) - - log.Infoln("expires", expires, time.Now().Add(time.Hour*72).Unix(), sessionExpires.Unix()) - - if err != nil { - log.Warn("Failed to parse session datetime", err) - return false, err - } - - // session has expired - if time.Now().Unix() > sessionExpires.Unix() { - log.Info("bigger") - deleteSession(db, sessionId) - - return false, err - } - - log.Info("not bigger") */ - return true, nil } func deleteSession(db *sql.DB, sessionId string) { @@ -310,11 +288,9 @@ func deleteSession(db *sql.DB, sessionId string) { } func deleteExpiredSessions(db *gorm.DB) { - err := db.Exec("DELETE FROM sessions WHERE expires < ?", time.Now()).Error + var res string - if err != nil { - log.Warnln("err deleting expired sessions:", err) - } + db.Raw("DELETE FROM sessions WHERE expires < ?", time.Now()).Scan(&res) } func createUserSession(db *gorm.DB, userId string, ip string, userAgent string) (string, error) { @@ -330,30 +306,15 @@ func createUserSession(db *gorm.DB, userId string, ip string, userAgent string) res := db.Create(&session) - log.Infoln("res", res.Error) - if res.Error != nil { - log.Warnln("Failed to create session:", res.Error) + log.Warnln("failed to create session:", res.Error) return "", err } - /*stmt, err := db.Prepare("INSERT INTO sessions (user_id, session_id, ip, user_agent, last_login, expires) VALUES (?, ?, ?, ?, ?, ?);") - - if err != nil { - log.Warnln("Failed to insert user into db:", err) - return "", err - } */ - - //ua := ua.Parse(userAgent) - - //stmt.Exec(userId, sessionId, ip, ua.OS+" "+ua.Name, time.Now(), getExpiresTime()) - //stmt.Close() - return sessionId, nil } func getExpiresTime() time.Time { - // TODO: db default return time.Now().Add(time.Hour * time.Duration(serversettings.Settings.ExpiredTime)) }