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 包中发送的身份验证令牌的主要内容,如果未能解决你的问题,请参考以下文章

JWT 授权标头未到达 api

Auth 标头未与 GET 请求一起发送

如何在授权标头中将带有 fetch 和 cors 的 JWT 令牌发送到 Express 服务器?

使用带有 JWT Auth/Laravel 的 Angular JS 获取新的刷新令牌后,如何恢复/重新发送请求?

我需要添加啥以及将 JWT 令牌发送到浏览器标头的位置?

Axios JWT 不发送