diff --git a/pkg/models/auth.go b/pkg/models/auth.go index 2145764..2e04efc 100644 --- a/pkg/models/auth.go +++ b/pkg/models/auth.go @@ -5,8 +5,9 @@ type Token struct { } type Login struct { - Email string `form:"email"` - Password string `form:"password"` + Email string `json:"email" form:"email"` + Password string `json:"password" form:"password"` + RememberMe bool `json:"rememberMe" form:"rememberMe"` } type Auth struct { diff --git a/pkg/services/users.go b/pkg/services/users.go index 608a93c..b1388b0 100644 --- a/pkg/services/users.go +++ b/pkg/services/users.go @@ -81,7 +81,7 @@ func (us *UsersService) Login(ctx context.Context, loginBody *models.Login) (*mo return tokenPayload, exceptionReturn } - token, err := CreateToken(check) + token, err := CreateToken(check, loginBody.RememberMe) common.CheckError(err) tokenPayload.Token = token @@ -124,11 +124,15 @@ func (us *UsersService) Deactivate(ctx context.Context, auth *models.Auth) (*mod return mm, me } -func CreateToken(user *models.User) (string, error) { +func CreateToken(user *models.User, rememberMe bool) (string, error) { atClaims := jwt.MapClaims{} atClaims["authorized"] = true atClaims["id"] = user.Id - atClaims["exp"] = time.Now().Add(time.Hour * 2).Unix() + if rememberMe { + atClaims["exp"] = time.Now().Add(time.Hour * 48).Unix() + } else { + atClaims["exp"] = time.Now().Add(time.Hour * 2).Unix() + } secret := os.Getenv("ACCESS_SECRET") if secret == "" {