优化结构
This commit is contained in:
@@ -8,7 +8,6 @@ import (
|
||||
"time"
|
||||
|
||||
"kra/internal/config"
|
||||
"kra/internal/security"
|
||||
|
||||
jwt "github.com/golang-jwt/jwt/v5"
|
||||
)
|
||||
@@ -95,7 +94,7 @@ func (i *tokenIssuer) IssueToken(user *system.User, authorityID uint, mustChange
|
||||
if user.PasswordUpdatedAt != nil {
|
||||
passwordVersion = user.PasswordUpdatedAt.UnixNano()
|
||||
}
|
||||
token, claims, err := security.Generate(settings.SigningKey, settings.Issuer, expires, settings.Buffer, user.ID, authorityID, user.UUID, user.Username, user.NickName, mustChangePassword, passwordVersion)
|
||||
token, claims, err := generateToken(settings.SigningKey, settings.Issuer, expires, settings.Buffer, user.ID, authorityID, user.UUID, user.Username, user.NickName, mustChangePassword, passwordVersion)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -107,16 +106,16 @@ func (i *tokenIssuer) ReissueToken(source *system.AuthClaims, authorityID uint)
|
||||
return nil, errors.New("nil JWT claims")
|
||||
}
|
||||
settings := i.settings.JWTSettings()
|
||||
claims := &security.Claims{
|
||||
claims := &tokenClaims{
|
||||
UUID: source.UUID, ID: source.ID, Username: source.Username, NickName: source.NickName,
|
||||
AuthorityID: authorityID, BufferTime: int64(source.BufferTime / time.Second), UserType: source.UserType,
|
||||
MustChangePwd: source.MustChangePwd, PasswordVersion: source.PasswordVersion,
|
||||
RegisteredClaims: jwt.RegisteredClaims{
|
||||
Audience: jwt.ClaimStrings{security.TokenAudience}, Issuer: settings.Issuer,
|
||||
Audience: jwt.ClaimStrings{tokenAudience}, Issuer: settings.Issuer,
|
||||
IssuedAt: jwt.NewNumericDate(source.IssuedAt), NotBefore: jwt.NewNumericDate(source.NotBefore), ExpiresAt: jwt.NewNumericDate(source.ExpiresAt),
|
||||
},
|
||||
}
|
||||
token, err := security.Sign(settings.SigningKey, claims)
|
||||
token, err := signToken(settings.SigningKey, claims)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -125,20 +124,9 @@ func (i *tokenIssuer) ReissueToken(source *system.AuthClaims, authorityID uint)
|
||||
|
||||
func (i *tokenIssuer) ParseToken(token string) (*system.AuthClaims, error) {
|
||||
settings := i.settings.JWTSettings()
|
||||
claims, err := security.ParseWithIssuer(token, settings.SigningKey, settings.Issuer)
|
||||
claims, err := parseTokenWithIssuer(token, settings.SigningKey, settings.Issuer)
|
||||
if err != nil {
|
||||
switch {
|
||||
case errors.Is(err, security.ErrTokenExpired):
|
||||
return nil, system.ErrTokenExpired
|
||||
case errors.Is(err, security.ErrTokenMalformed):
|
||||
return nil, system.ErrTokenMalformed
|
||||
case errors.Is(err, security.ErrTokenSignatureInvalid):
|
||||
return nil, system.ErrTokenSignatureInvalid
|
||||
case errors.Is(err, security.ErrTokenNotValidYet):
|
||||
return nil, system.ErrTokenNotValidYet
|
||||
default:
|
||||
return nil, system.ErrTokenInvalid
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
audience := append([]string(nil), claims.Audience...)
|
||||
issuedAt := time.Time{}
|
||||
|
||||
Reference in New Issue
Block a user