我目前正在使用typescript、WebStorm、passport和jwt为node.js微服务应用程序开发认证服务。尝试将路由添加到“/api/login”时,我注意到智能提示好像无法识别req.user的用户对象或req.header.authorization的授权对象。例如,以下方法因找不到用户对象而无法正常工作:
private generateToken(req: Request, res: Response, next: NextFunction){
req.token = jwt.sign({
id: req.user.id,
firstname: req.user.firstname,
lastname: req.user.lastname,
roles: req.user.roles
}, process.env.AUTH_KEY, {
expiresIn: "7d"
});
return next();
}
我正在使用来自Express的Request对象:
import { NextFunction, Request, Response, Router } from "express";
我需要使用不同的Request对象吗?
另外,如果我需要强制对某些api路由进行身份验证,但锁定其他路由,该如何使用passport-jwt实现?我知道有一个express-unless包可以用于express-jwt。