【发布时间】:2016-02-05 17:21:02
【问题描述】:
我正在使用 PostMan 解决我的 Angular / NodeJS 应用程序出现的奇怪的 400 错误。
我正在尝试 GET https://example.com/login.html 并且请求有两个标头:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc...== 和 Accept: text/html
这会返回一个400 Bad Request 错误(服务器:cloudflare-nginx)
这很好用(返回200)如果:
我在
http://localhost:5000/login.html的本地环境中访问该文件(没有 https 因素?)-或-我从标题中删除了
Authorization: Bearer
如果我查看我的 NodeJS 服务器日志,我什至看不到请求通过。所以/login.html 甚至没有受到打击,我猜是因为 Express 在我的 app.use(logger('dev')); 接听之前拒绝了它。
更新:我相信 Cloudflare 会在请求到达 Heroku 之前将其退回 400。
还有几点:
我正在使用 JWT 对用户进行身份验证,这就是 Bearer 令牌的来源。
如果我使用 Bearer 令牌访问其他端点,例如
/profile,它会通过解码令牌正确响应用户配置文件。
我的问题是:
为什么这个请求在其他端点上工作时会是“错误请求”?
有没有办法在请求返回 400 之前捕捉到这一点并对其进行处理?
【问题讨论】:
标签: angularjs node.js express jwt