@@ -31,7 +31,7 @@ import (
3131 "github.com/go-kratos/kratos/v2/errors"
3232 jwtMiddleware "github.com/go-kratos/kratos/v2/middleware/auth/jwt"
3333 "github.com/go-kratos/kratos/v2/middleware/selector"
34- jwt "github.com/golang-jwt/jwt/v4 "
34+ jwt "github.com/golang-jwt/jwt/v5 "
3535 "github.com/prometheus/client_golang/prometheus"
3636 "google.golang.org/genproto/googleapis/bytestream"
3737
@@ -194,24 +194,14 @@ func verifyAndMarshalJWT(token string, keyFunc jwt.Keyfunc, signingMethod jwt.Si
194194
195195 tokenInfo , err := jwt .ParseWithClaims (token , claims , keyFunc )
196196 if err != nil {
197- var ve * jwt.ValidationError
198- if ! errors .As (err , & ve ) {
199- return nil , errors .Unauthorized ("UNAUTHORIZED" , err .Error ())
200- }
201-
202- if ve .Errors & jwt .ValidationErrorMalformed != 0 {
197+ switch {
198+ case errors .Is (err , jwt .ErrTokenMalformed ):
203199 return nil , jwtMiddleware .ErrTokenInvalid
204- }
205-
206- if ve .Errors & (jwt .ValidationErrorExpired ) != 0 {
207- return nil , jwtMiddleware .ErrTokenExpired
208- }
209-
210- if ve .Errors & (jwt .ValidationErrorNotValidYet ) != 0 {
200+ case errors .Is (err , jwt .ErrTokenExpired ), errors .Is (err , jwt .ErrTokenNotValidYet ):
211201 return nil , jwtMiddleware .ErrTokenExpired
202+ default :
203+ return nil , errors .Unauthorized ("UNAUTHORIZED" , err .Error ())
212204 }
213-
214- return nil , err
215205 }
216206
217207 if ! tokenInfo .Valid {
0 commit comments