身份验证中间件 req.body.authorization 'split'未定义



我试图检查是否有令牌,但'分裂'未定义。我还在学习MERN,所以我不知道有什么问题。

const auths = async (req,res,next) => {
try {
const token = req.headers.authorization.split(" ")[1];
const isCustomAuth = token.length < 500;
let decodedData;
if(token && isCustomAuth){
decodedData = jwt.verify(token, 'todo');
req.userId = decodedData?.id;
}else {
decodedData = jwt.decode(token);
req.userId = decodedData?.sub;
}
next();
console.log('auth tapped!');
} catch (error) {
console.log(error);
}
}

因为头部没有authorization。所以req.headers.authorizationundefined。您可以使用optional chaining来解决如下问题:

const token = req.headers.authorization?.split(" ")[1];

最新更新