JWT:如何在标头中发送授权?
Posted
技术标签:
【中文标题】JWT:如何在标头中发送授权?【英文标题】:JWT: How send authorization in header? 【发布时间】:2015-04-25 05:54:16 【问题描述】:我正在使用 JWT (https://github.com/tymondesigns/jwt-auth) 在我的 API 中生成会话令牌。
我进行了所有相关设置以作为作者的文档。
连接会话后,我使用 URL 来返回我的类别数据。当我直接在 URL 中传递令牌时,它可以工作。如下:
http://api.domain.com/categories?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
只有我需要在我的请求头中使用身份验证承载传递令牌。但不起作用。看看我的经历:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
可能出了什么问题?
在 JWT 文档中提到了我上面使用的表单的使用。但不起作用。
【问题讨论】:
【参考方案1】:如果您使用的是 Apache,那么由于 Symfony 中的 this known issue,标头可能无法通过
如果是这种情况,您需要将以下内容添加到您的虚拟主机:
RewriteEngine On
RewriteCond %HTTP:Authorization ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
【讨论】:
【参考方案2】:请确保您的后端(服务器端)代码中有以下行 这是针对 php 的。
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization');
请注意,上面一行我们允许“授权”标题。
一旦您在服务器端代码中有上述行,那么您可以在函数下方(如果您使用 php 编码)来获取数组中的所有标头。
getallheaders();
【讨论】:
确实没有服务器端标头。根据他的说法添加,但它甚至不起作用。但我认为现在它与应用程序有关。以上是关于JWT:如何在标头中发送授权?的主要内容,如果未能解决你的问题,请参考以下文章