我正在使用 PostMan 来解决我的 Angular / NodeJS 应用程序中的奇怪 400 错误。
我正在尝试获取https://example.com/login.html
并且请求有两个标头:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc...==
and Accept: text/html
这会返回一个400 Bad Request
错误(服务器:cloudflare-nginx)
这工作正常(返回200
) if:
如果我查看 NodeJS 服务器日志,我什至看不到请求通过。所以/login.html
我想,甚至没有被击中,因为快递在我之前拒绝了它app.use(logger('dev'));
把它捡起来。
更新:我相信在请求到达 Heroku 之前,Cloudflare 会以 400 进行回扣。
还有几点:
我的问题是:
事实证明,这个问题与我的 JWT 实施有关。由于某种原因,一名用户继续收到导致这些 400 错误的令牌,即使该令牌已使用 JWT.io 验证为有效。
我做了两个重大更改来解决该问题:
我将完整的用户配置文件(长 JSON)嵌入到令牌有效负载中。我将其减少为仅其用户 ID,这既是出于性能原因(尺寸小得多),也是为了防止复杂有效负载中的某些内容导致问题。
我从 JWT-Simple 切换到jsonwebtoken
在我的节点实现中。
我很高兴这有效。我的下一步是从“授权”切换为“x-encoded-auth”或其他自定义名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)