func isSessionIdValid works now
parent
b7c044fe1d
commit
56085c1b17
|
@ -255,11 +255,7 @@ func SessionIdCheck(c *fiber.Ctx) error {
|
||||||
return fiber.ErrUnauthorized
|
return fiber.ErrUnauthorized
|
||||||
}
|
}
|
||||||
|
|
||||||
valid, err := isSessionIdValid(sessionId)
|
valid := isSessionIdValid(sessionId)
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return fiber.ErrInternalServerError
|
|
||||||
}
|
|
||||||
|
|
||||||
if valid {
|
if valid {
|
||||||
return c.Next()
|
return c.Next()
|
||||||
|
@ -268,37 +264,19 @@ func SessionIdCheck(c *fiber.Ctx) error {
|
||||||
return fiber.ErrUnauthorized
|
return fiber.ErrUnauthorized
|
||||||
}
|
}
|
||||||
|
|
||||||
func isSessionIdValid(sessionId string) (bool, error) {
|
func isSessionIdValid(sessionId string) bool {
|
||||||
|
|
||||||
//defer db.Close()
|
|
||||||
|
|
||||||
deleteExpiredSessions(database.DB)
|
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 {
|
db.Raw("SELECT session_id FROM sessions WHERE session_id = ?", sessionId).Scan(&res)
|
||||||
return false, nil
|
|
||||||
|
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) {
|
func deleteSession(db *sql.DB, sessionId string) {
|
||||||
|
@ -310,11 +288,9 @@ func deleteSession(db *sql.DB, sessionId string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteExpiredSessions(db *gorm.DB) {
|
func deleteExpiredSessions(db *gorm.DB) {
|
||||||
err := db.Exec("DELETE FROM sessions WHERE expires < ?", time.Now()).Error
|
var res string
|
||||||
|
|
||||||
if err != nil {
|
db.Raw("DELETE FROM sessions WHERE expires < ?", time.Now()).Scan(&res)
|
||||||
log.Warnln("err deleting expired sessions:", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createUserSession(db *gorm.DB, userId string, ip string, userAgent string) (string, error) {
|
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)
|
res := db.Create(&session)
|
||||||
|
|
||||||
log.Infoln("res", res.Error)
|
|
||||||
|
|
||||||
if res.Error != nil {
|
if res.Error != nil {
|
||||||
log.Warnln("Failed to create session:", res.Error)
|
log.Warnln("failed to create session:", res.Error)
|
||||||
return "", err
|
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
|
return sessionId, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getExpiresTime() time.Time {
|
func getExpiresTime() time.Time {
|
||||||
// TODO: db default
|
|
||||||
return time.Now().Add(time.Hour * time.Duration(serversettings.Settings.ExpiredTime))
|
return time.Now().Add(time.Hour * time.Duration(serversettings.Settings.ExpiredTime))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue