JWT:如何在 header 中发送授权?
JWT: How send authorization in header?
我正在使用 JWT (https://github.com/tymondesigns/jwt-auth) 在我的 API 中生成 session 令牌。
我做了所有相关设置作为作者的文档。
连接 session 后,我使用了 URL 到 return 类别的数据。当我直接在 URL 中传递令牌时,它起作用了。如下:
http://api.domain.com/categories?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
只有我需要在我对 header 的请求中使用身份验证承载传递令牌。但不起作用。看看我的经历:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
有什么问题吗?
在JWT文档中提到了我在上面使用的表单的使用。但是不起作用。
请确保您的后端(服务器端)代码中包含以下行
这是为了 PHP。
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization');
注意上面一行我们允许 "Authorization" header.
一旦你的服务器端代码中有上面一行,那么你可以在函数下面(如果你在 php 中编码)来获取数组中的所有 headers。
getallheaders();
如果您使用的是 Apache,那么 headers 可能不会通过,因为 this known issue 在 Symfony
中
如果是这种情况,您需要将以下内容添加到您的虚拟主机中:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
我正在使用 JWT (https://github.com/tymondesigns/jwt-auth) 在我的 API 中生成 session 令牌。
我做了所有相关设置作为作者的文档。
连接 session 后,我使用了 URL 到 return 类别的数据。当我直接在 URL 中传递令牌时,它起作用了。如下:
http://api.domain.com/categories?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
只有我需要在我对 header 的请求中使用身份验证承载传递令牌。但不起作用。看看我的经历:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
有什么问题吗?
在JWT文档中提到了我在上面使用的表单的使用。但是不起作用。
请确保您的后端(服务器端)代码中包含以下行 这是为了 PHP。
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization');
注意上面一行我们允许 "Authorization" header.
一旦你的服务器端代码中有上面一行,那么你可以在函数下面(如果你在 php 中编码)来获取数组中的所有 headers。
getallheaders();
如果您使用的是 Apache,那么 headers 可能不会通过,因为 this known issue 在 Symfony
中如果是这种情况,您需要将以下内容添加到您的虚拟主机中:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]