@ -68,7 +68,7 @@ func GenerateTokenPair(userID, username, nickname, avatar, email string, orgs []
AccessToken : accessToken ,
AccessToken : accessToken ,
RefreshToken : refreshToken ,
RefreshToken : refreshToken ,
TokenType : "Bearer" ,
TokenType : "Bearer" ,
ExpiresIn : int ( cfg . Config . JWT . AccessExpiry . Seconds ( ) ) ,
ExpiresIn : int ( cfg . Global . JWT . AccessExpiry . Seconds ( ) ) ,
} , nil
} , nil
}
}
@ -78,12 +78,12 @@ func GenerateAccessToken(userID, username, nickname, avatar, email string, orgs
claims := Claims {
claims := Claims {
RegisteredClaims : jwt . RegisteredClaims {
RegisteredClaims : jwt . RegisteredClaims {
ID : uuid . New ( ) . String ( ) , // jti
ID : uuid . New ( ) . String ( ) , // jti
Issuer : cfg . Config . JWT . Issuer ,
Issuer : cfg . Global . JWT . Issuer ,
Subject : userID ,
Subject : userID ,
Audience : jwt . ClaimStrings { "vbase" } ,
Audience : jwt . ClaimStrings { "vbase" } ,
IssuedAt : jwt . NewNumericDate ( now ) ,
IssuedAt : jwt . NewNumericDate ( now ) ,
NotBefore : jwt . NewNumericDate ( now ) ,
NotBefore : jwt . NewNumericDate ( now ) ,
ExpiresAt : jwt . NewNumericDate ( now . Add ( cfg . Config . JWT . AccessExpiry ) ) ,
ExpiresAt : jwt . NewNumericDate ( now . Add ( cfg . Global . JWT . AccessExpiry ) ) ,
} ,
} ,
UserID : userID ,
UserID : userID ,
Username : username ,
Username : username ,
@ -95,7 +95,7 @@ func GenerateAccessToken(userID, username, nickname, avatar, email string, orgs
}
}
token := jwt . NewWithClaims ( jwt . SigningMethodHS256 , claims )
token := jwt . NewWithClaims ( jwt . SigningMethodHS256 , claims )
return token . SignedString ( [ ] byte ( cfg . Config . JWT . Secret ) )
return token . SignedString ( [ ] byte ( cfg . Global . JWT . Secret ) )
}
}
// GenerateRefreshToken 生成刷新令牌
// GenerateRefreshToken 生成刷新令牌
@ -104,17 +104,17 @@ func GenerateRefreshToken(userID string) (string, error) {
claims := Claims {
claims := Claims {
RegisteredClaims : jwt . RegisteredClaims {
RegisteredClaims : jwt . RegisteredClaims {
ID : uuid . New ( ) . String ( ) ,
ID : uuid . New ( ) . String ( ) ,
Issuer : cfg . Config . JWT . Issuer ,
Issuer : cfg . Global . JWT . Issuer ,
Subject : userID ,
Subject : userID ,
IssuedAt : jwt . NewNumericDate ( now ) ,
IssuedAt : jwt . NewNumericDate ( now ) ,
ExpiresAt : jwt . NewNumericDate ( now . Add ( cfg . Config . JWT . RefreshExpiry ) ) ,
ExpiresAt : jwt . NewNumericDate ( now . Add ( cfg . Global . JWT . RefreshExpiry ) ) ,
} ,
} ,
UserID : userID ,
UserID : userID ,
Type : "refresh" ,
Type : "refresh" ,
}
}
token := jwt . NewWithClaims ( jwt . SigningMethodHS256 , claims )
token := jwt . NewWithClaims ( jwt . SigningMethodHS256 , claims )
return token . SignedString ( [ ] byte ( cfg . Config . JWT . Secret ) )
return token . SignedString ( [ ] byte ( cfg . Global . JWT . Secret ) )
}
}
// ParseToken 解析Token
// ParseToken 解析Token
@ -123,9 +123,8 @@ func ParseToken(tokenString string) (*Claims, error) {
if _ , ok := token . Method . ( * jwt . SigningMethodHMAC ) ; ! ok {
if _ , ok := token . Method . ( * jwt . SigningMethodHMAC ) ; ! ok {
return nil , fmt . Errorf ( "unexpected signing method: %v" , token . Header [ "alg" ] )
return nil , fmt . Errorf ( "unexpected signing method: %v" , token . Header [ "alg" ] )
}
}
return [ ] byte ( cfg . Config . JWT . Secret ) , nil
return [ ] byte ( cfg . Global . JWT . Secret ) , nil
} )
} )
if err != nil {
if err != nil {
if errors . Is ( err , jwt . ErrTokenExpired ) {
if errors . Is ( err , jwt . ErrTokenExpired ) {
return nil , ErrExpiredToken
return nil , ErrExpiredToken