|
|
|
@ -63,22 +63,23 @@ func JWT(opts ...JwtOption) middleware.Middleware { |
|
|
|
|
if tokenStr == "" && needAuth { |
|
|
|
|
return nil, errors.Unauthorized("NO_TOKEN", "") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
userInfo, err := cfg.validate.ParseToken(ctx, cfg.jwtKey, tokenStr) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
if needAuth && userInfo.UserId == 0 { |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_BAD", "") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if authKey != "" { |
|
|
|
|
if err := cfg.validate.Validate(ctx, authKey, userInfo.Permissions); err != nil { |
|
|
|
|
if tokenStr != "" { |
|
|
|
|
userInfo, err := cfg.validate.ParseToken(ctx, cfg.jwtKey, tokenStr) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if userInfo.UserId > 0 { |
|
|
|
|
ctx = SetUserContext(ctx, userInfo) |
|
|
|
|
if needAuth && userInfo.UserId == 0 { |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_BAD", "") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if authKey != "" { |
|
|
|
|
if err := cfg.validate.Validate(ctx, authKey, userInfo.Permissions); err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if userInfo.UserId > 0 { |
|
|
|
|
ctx = SetUserContext(ctx, userInfo) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return handler(ctx, a) |
|
|
|
|
} |
|
|
|
|