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

时间:2015-02-23 19:25:27

标签: php rest laravel token jwt

我正在使用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文档中提到了我在上面使用的表单的使用。但是不起作用。

2 个答案:

答案 0 :(得分:4)

如果您使用的是Apache,那么由于Symfony中的this known issue

,标题可能无法通过

如果是这种情况,您需要将以下内容添加到虚拟主机:

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

答案 1 :(得分:0)

请确保您的后端(服务器端)代码中有以下行 这适用于PHP。

header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization');

请注意,对于上面的行,我们允许“授权”标题。

一旦在服务器端代码中有上面的行,那么你可以在函数下面(如果你在php中编码)来获取数组中的所有头文件。

getallheaders();