Skip to content

Commit

Permalink
修复刷新 token 的 BUG
Browse files Browse the repository at this point in the history
  • Loading branch information
flycash committed Mar 26, 2024
1 parent 2c593de commit 541ac1c
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions session/redis/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,9 @@ func (rsp *SessionProvider) RenewAccessToken(ctx *ginx.Context) error {
}
claims := jwtClaims.Data
sess := newRedisSession(claims.SSID, rsp.expiration, rsp.client, claims)
defer func() {
// refresh_token 只能用一次,不管成功与否
_ = sess.Del(ctx, keyRefreshToken)
}()
oldToken := sess.Get(ctx, keyRefreshToken).StringOrDefault("")
// refresh_token 只能用一次,不管成功与否
_ = sess.Del(ctx, keyRefreshToken)
// 说明这个 rt 是已经用过的 refreshToken
// 或者 session 本身就已经过期了
if oldToken != rt {
Expand Down Expand Up @@ -144,7 +142,7 @@ func (rsp *SessionProvider) Get(ctx *gctx.Context) (session.Session, error) {
func NewSessionProvider(client redis.Cmdable, jwtKey string) *SessionProvider {
// 长 token 过期时间,被看做是 Session 的过期时间
expiration := time.Hour * 24 * 30
m := ijwt.NewManagement[session.Claims](ijwt.NewOptions(time.Hour, jwtKey),
m := ijwt.NewManagement[session.Claims](ijwt.NewOptions(time.Second*30, jwtKey),
ijwt.WithRefreshJWTOptions[session.Claims](ijwt.NewOptions(expiration, jwtKey)))
return &SessionProvider{
client: client,
Expand Down

0 comments on commit 541ac1c

Please sign in to comment.