Fix errors with trying to fetch sessions from database

This commit is contained in:
qowevisa 2024-11-08 17:04:43 +02:00
parent b3362d4a66
commit f6c226e97a

View File

@ -2,19 +2,15 @@ package tokens
import ( import (
"crypto/sha256" "crypto/sha256"
"encoding/base64"
"log" "log"
"time" "time"
"git.qowevisa.me/Qowevisa/fin-check-api/db" "git.qowevisa.me/Qowevisa/fin-check-api/db"
) )
func getSalt() []byte {
return []byte("w40DJV3v1flySvFdxHWbBSJsIOaakkVs5FG7brq4oi1#nEz2fEZxpUfyBwkkww7f")
}
func CreateSessionFromToken(token string, userID uint) error { func CreateSessionFromToken(token string, userID uint) error {
salt := getSalt() sessionID := getSessionIDFromToken(token)
sessionID := sha256.New().Sum(append(salt, []byte(token)...))
dbc := db.Connect() dbc := db.Connect()
session := &db.Session{ session := &db.Session{
ID: string(sessionID), ID: string(sessionID),
@ -28,11 +24,10 @@ func CreateSessionFromToken(token string, userID uint) error {
} }
func ValidateSessionToken(token string) bool { func ValidateSessionToken(token string) bool {
salt := getSalt() sessionID := getSessionIDFromToken(token)
sessionID := sha256.New().Sum(append(salt, []byte(token)...))
dbc := db.Connect() dbc := db.Connect()
session := &db.Session{} session := &db.Session{}
if err := dbc.Find(session, sessionID).Error; err != nil { if err := dbc.Debug().Find(session, db.Session{ID: sessionID}).Error; err != nil {
log.Printf("DBERROR: %v\n", err) log.Printf("DBERROR: %v\n", err)
return false return false
} }
@ -47,12 +42,17 @@ func ValidateSessionToken(token string) bool {
} }
func GetSession(token string) (*db.Session, error) { func GetSession(token string) (*db.Session, error) {
salt := getSalt() sessionID := getSessionIDFromToken(token)
sessionID := sha256.New().Sum(append(salt, []byte(token)...))
dbc := db.Connect() dbc := db.Connect()
session := &db.Session{} session := &db.Session{}
if err := dbc.Find(session, sessionID).Error; err != nil { if err := dbc.Find(session, db.Session{ID: sessionID}).Error; err != nil {
return nil, err return nil, err
} }
return session, nil return session, nil
} }
func getSessionIDFromToken(token string) string {
salt := []byte("w40DJV3v1flySvFdxHWbBSJsIOaakkVs5FG7brq4oi1#nEz2fEZxpUfyBwkkww7f")
bytes := sha256.New().Sum(append(salt, []byte(token)...))
return base64.URLEncoding.EncodeToString(bytes)
}