finish session getting code
This commit is contained in:
@@ -2,6 +2,8 @@ package session
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"astraltech.xyz/accountmanager/src/logging"
|
||||
"github.com/redis/go-redis/v9"
|
||||
@@ -45,19 +47,25 @@ func (m *RedisStore) Create(sessionID string, session *SessionData) (err error)
|
||||
func (m *RedisStore) Get(sessionID string) (*SessionData, error) {
|
||||
hashed := hashSession(sessionID)
|
||||
|
||||
_, err := m.client.Get(m.ctx, hashed).Result()
|
||||
data, err := m.client.Get(m.ctx, hashed).Bytes()
|
||||
if err == redis.Nil {
|
||||
return nil, ErrSessionNotFound
|
||||
} else if err != nil {
|
||||
logging.Error(err.Error())
|
||||
return nil, ErrSessionBackend
|
||||
}
|
||||
|
||||
// if time.Now().After(data.ExpiresAt) {
|
||||
// _ = m.Delete(sessionID) // ignore error
|
||||
// return nil, ErrSessionExpired
|
||||
// }
|
||||
// copy := *data
|
||||
return nil, nil
|
||||
var session_data SessionData
|
||||
if err := json.Unmarshal(data, &session_data); err != nil {
|
||||
logging.Error(err.Error())
|
||||
return nil, ErrSessionBackend
|
||||
}
|
||||
|
||||
if time.Now().After(session_data.ExpiresAt) {
|
||||
_ = m.Delete(sessionID)
|
||||
return nil, ErrSessionBackend
|
||||
}
|
||||
return &session_data, nil
|
||||
}
|
||||
func (m *RedisStore) Update(sessionID string, session *SessionData) error {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user