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