Laravel 未检测到标头和 JWT 包中发送的身份验证令牌
Posted
技术标签:
【中文标题】Laravel 未检测到标头和 JWT 包中发送的身份验证令牌【英文标题】:Laravel not detecting auth token sent in the header and JWT package 【发布时间】:2016-05-04 06:10:30 【问题描述】:我已经设置了一个 Ionic 应用程序并开始使用 Laravel 作为 API。在我发送令牌之前,postman 和 Ionic 中的一切都很好。
使用一个名为 Satellizer 的包,它将本地存储中的令牌添加到标题中。
我的问题是,我收到未提供令牌的错误。
在邮递员中,如果调用:/api/v1/authenticate/user?token=tokenkey
然后它工作正常,如果我也用 url 参数中设置的令牌作为 http 请求硬编码相同的 url,那么它也可以工作。
但是,当使用邮递员并将标头中的授权参数设置为:
token : tokenkey
我再次收到丢失令牌错误。在角度,当向 /api/v1/authenticate/user 发出请求时,我检查了标头参数,可以看到授权已设置为“Bearer tokenkey”。
任何帮助为什么它没有被 Laravel 接收?我找到了有关 Apache 删除 auth 标头的信息并添加了以下内容:
RewriteEngine On
RewriteCond %HTTP:Authorization ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
到我在 MAMP 上的 Apache 配置文件,重新启动但同样的问题。
还有什么建议吗?
【问题讨论】:
【参考方案1】:尝试使用
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
在您的公共/.htaccess 中。
*** 上的相关问题:Laravel in Apache getting header value
Github 上的相关问题:https://github.com/dingo/api/issues/54 和 https://github.com/sahat/satellizer/issues/300
【讨论】:
【参考方案2】:尝试使用
Authorization : Bearer String_token
【讨论】:
以上是关于Laravel 未检测到标头和 JWT 包中发送的身份验证令牌的主要内容,如果未能解决你的问题,请参考以下文章
如何在授权标头中将带有 fetch 和 cors 的 JWT 令牌发送到 Express 服务器?