fix: persist jwt expires by cookie (#2509)

fix pesist jwt expires by cookie
This commit is contained in:
Athurg Gooth 2023-11-13 13:52:04 +08:00 committed by GitHub
parent f67757f606
commit 52fdf8bccd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -106,8 +106,11 @@ func (s *APIV1Service) SignIn(c echo.Context) error {
} }
var expireAt time.Time var expireAt time.Time
// Set cookie expiration to 100 years to make it persistent.
cookieExp := time.Now().AddDate(100, 0, 0)
if !signin.Remember { if !signin.Remember {
expireAt = time.Now().Add(auth.AccessTokenDuration) expireAt = time.Now().Add(auth.AccessTokenDuration)
cookieExp = time.Now().Add(auth.CookieExpDuration)
} }
accessToken, err := auth.GenerateAccessToken(user.Username, user.ID, expireAt, []byte(s.Secret)) accessToken, err := auth.GenerateAccessToken(user.Username, user.ID, expireAt, []byte(s.Secret))
@ -117,7 +120,6 @@ func (s *APIV1Service) SignIn(c echo.Context) error {
if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil { if err := s.UpsertAccessTokenToStore(ctx, user, accessToken); err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err) return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to upsert access token, err: %s", err)).SetInternal(err)
} }
cookieExp := time.Now().Add(auth.CookieExpDuration)
setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp) setTokenCookie(c, auth.AccessTokenCookieName, accessToken, cookieExp)
userMessage := convertUserFromStore(user) userMessage := convertUserFromStore(user)
return c.JSON(http.StatusOK, userMessage) return c.JSON(http.StatusOK, userMessage)