【发布时间】:2021-10-21 23:34:11
【问题描述】:
我在将我的后端 CakePHP 应用程序从 CakePHP 3.9 迁移到 CakePHP 4 时遇到问题。
该应用程序用作我的sveltejs/sapper Javascript 应用程序的 API。
至于 JWT 身份验证,我使用的是 admad/cakephp-jwt-auth 插件。
应用程序之前迁移完美地从浏览器作为前端工作。 在 Postman 中测试我的 API 适用于 CakePHP 3 和 4 版本。
但是, 迁移之后,从浏览器 (sveltejs/sapper) 和需要身份验证的地方(包含 Bearer 令牌的Authorization 标头)发送的请求会导致错误:
错误 401“授权失败
我的 CORS 中间件(ozee31/cakephp-cors 插件)似乎也在工作,因为不需要授权的请求也可以按预期工作,也可以从浏览器中工作 - 拔出 CORS 中间件会导致浏览器中出现 CORS 错误请求。
另外,我的服务器正在填充$_SERVER['HTTP_AUTHORIZATION']
有没有人成功实现过类似的设置,尤其是在 CakePHP 4 和 HTTP_AUTHORIZATION 标头方面?
【问题讨论】:
-
您是否调试过浏览器中发出的请求究竟是什么样的?如果没有,请检查浏览器的网络控制台并将请求(和响应)与 Postman 发出的请求(和响应)进行比较。还要检查您的 CakePHP 应用程序的错误/调试日志以获取更多信息,至少堆栈跟踪可能包含一些提示,告诉您错误触发的确切位置。
标签: php cakephp jwt cakephp-4.x