JWT 授权标头未到达 api

Posted

技术标签:

【中文标题】JWT 授权标头未到达 api【英文标题】:JWT Authorization header not reaching api 【发布时间】:2018-09-16 17:25:36 【问题描述】:

我将我的 laravel 项目部署在支持 mod_rewrite 的共享托管服务器上,并希望发送一个名为 Authorization 的标头(JWT 标头),但它不会到达控制器。

mt .htaccess:

选项 -MultiViews -Indexes 重写引擎开启

# Handle Authorization Header
RewriteCond %HTTP:Authorization .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]

【问题讨论】:

您使用的是哪个 JWT 软件包? "tymon/jwt-auth": "0.5.*" 猜猜你改htcaccess后重启了apache2服务吧? 即使我在共享主机上也可以重新启动它吗? 【参考方案1】:

为了规避 Apache2 丢弃了我需要添加此代码的授权标头:

RewriteEngine On
RewriteCond %HTTP:Authorization ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

到我的 /public 文件夹中的 .htcaccess 文件。

【讨论】:

它仍然告诉我没有令牌

以上是关于JWT 授权标头未到达 api的主要内容,如果未能解决你的问题,请参考以下文章

授权标头未到达 laravel 项目中的服务器

未使用 jwt_required 注释时,烧瓶路由请求授权标头

JWT:如何在标头中发送授权?

使用 jwt 授权反应 js 在标头中添加授权时遇到问题?

通过标头进行 JWT 授权引发 CORS 错误

.net web api - 授权标头始终为空