auth 中间件 req.body.authorization 'split' 未定义
Posted
技术标签:
【中文标题】auth 中间件 req.body.authorization \'split\' 未定义【英文标题】:auth middleware req.body.authorization 'split' is undefinedauth 中间件 req.body.authorization 'split' 未定义 【发布时间】:2021-10-31 23:14:55 【问题描述】:我正在尝试检查是否存在令牌,但未定义“拆分”。我还在学习 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);
【问题讨论】:
【参考方案1】:因为标题没有authorization
。所以req.headers.authorization
是undefined
。您可以使用optional chaining
来解决这样的问题:
const token = req.headers.authorization?.split(" ")[1];
【讨论】:
是的,它成功了!但令牌返回未定义 是的。你没有在标题中传递Authorization
,所以它没有价值以上是关于auth 中间件 req.body.authorization 'split' 未定义的主要内容,如果未能解决你的问题,请参考以下文章
*Nuxt JS Auth* 为啥在模板部分使用 loginWith 成功登录后 auth.loggedIn 为真,但在中间件文件中为假?