任务二完成
This commit is contained in:
+16
-1
@@ -103,5 +103,20 @@ func (j *JWT) ParseToken(tokenString string) (*CustomClaims, error) {
|
||||
|
||||
// NeedRefresh 判断是否需要刷新token
|
||||
func (j *JWT) NeedRefresh(claims *CustomClaims) bool {
|
||||
return time.Until(claims.ExpiresAt.Time) < j.BufferTime
|
||||
return claims.ExpiresAt.Unix()-time.Now().Unix() < claims.BufferTime
|
||||
}
|
||||
|
||||
// CreateTokenByOldToken 根据旧token创建新token
|
||||
func (j *JWT) CreateTokenByOldToken(oldToken string, oldClaims CustomClaims) (string, *CustomClaims, error) {
|
||||
// 更新过期时间
|
||||
oldClaims.ExpiresAt = jwt.NewNumericDate(time.Now().Add(j.ExpiresAt))
|
||||
oldClaims.IssuedAt = jwt.NewNumericDate(time.Now())
|
||||
oldClaims.NotBefore = jwt.NewNumericDate(time.Now().Add(-1000))
|
||||
|
||||
token := jwt.NewWithClaims(jwt.SigningMethodHS256, oldClaims)
|
||||
newToken, err := token.SignedString(j.SigningKey)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
return newToken, &oldClaims, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user