This commit is contained in:
Eden Kirin
2024-02-06 20:31:01 +01:00
parent f6c4b3eb06
commit 320fb3c4d3

View File

@ -15,7 +15,7 @@ var sessionStore = session.New(session.Config{
Storage: sessionStorage,
})
const SESSION_EXPIRES = time.Minute * 30
const SESSION_EXPIRES = time.Hour * 24
type UserGetter interface {
GetUserById(id string) *types.User
@ -24,7 +24,7 @@ type UserGetter interface {
type Request struct {
Ctx *fiber.Ctx
session *session.Session
Session *session.Session
User *types.User
userGetter UserGetter
}
@ -37,14 +37,16 @@ func NewRequest(ctx *fiber.Ctx, userGetter UserGetter) *Request {
var user *types.User = nil
userId := session.Get("userId")
if userId != nil {
user = userGetter.GetUserById(userId.(string))
if !session.Fresh() {
userId := session.Get("userId")
if userId != nil {
user = userGetter.GetUserById(userId.(string))
}
}
return &Request{
Ctx: ctx,
session: session,
Session: session,
userGetter: userGetter,
User: user,
}
@ -58,9 +60,9 @@ func (r *Request) LoginUser(username string, password string) error {
}
r.User = user
r.session.Set("userId", r.User.Id)
r.session.SetExpiry(SESSION_EXPIRES)
if err := r.session.Save(); err != nil {
r.Session.Set("userId", r.User.Id)
r.Session.SetExpiry(SESSION_EXPIRES)
if err := r.Session.Save(); err != nil {
panic(err)
}
@ -75,7 +77,7 @@ func (r *Request) Logout() error {
if !r.UserAuthenticated() {
return errors.New("user not authenticated")
}
r.session.Destroy()
r.Session.Destroy()
r.User = nil
return nil
}