调用Vercel部署的Express端点时遭遇401错误求助
Vercel Express端点401错误排查方案
- 检查Token拼写与格式:确认请求头
Authorization的格式完全正确,Bearer与token之间必须保留一个空格,同时仔细核对token字符,避免复制时出现多字符、少字符或包含换行/空格的情况。 - 验证后端校验逻辑:检查Express端点的token校验代码,确保正确解析请求头并与控制台生成的token精确匹配。比如是否存在大小写错误、误加额外前缀/后缀的情况。参考校验逻辑示例:
app.get('/api/get_myrecords', (req, res) => { const authHeader = req.headers.authorization; if (!authHeader || !authHeader.startsWith('Bearer ')) { return res.status(401).send('Unauthorized'); } const token = authHeader.split(' ')[1]; // 确保环境变量名与控制台配置一致 if (token !== process.env.VALID_TOKEN) { return res.status(401).send('Unauthorized'); } // 业务逻辑处理 });
- 确认Vercel环境变量配置:在Vercel控制台项目的「环境变量」页面,检查生产环境是否已正确添加生成的token,且变量名称与后端代码中引用的完全一致。注意修改环境变量后需要重新部署生产环境,确保变量生效。
- 排查请求头是否被篡改:通过浏览器开发者工具的Network面板,查看实际发送的请求头,确认
Authorization头完整且正确,未被浏览器插件、代理或CDN修改。 - 查看Serverless Function日志:在Vercel控制台的「Functions」页面,找到对应
get_myrecords函数的日志,查看请求到达时的具体错误信息,比如token校验环节的日志输出,定位问题根源。
内容的提问来源于stack exchange,提问作者nobby nob
相关产品推荐
相关产品推荐

