【问题标题】:JWT: How send authorization in header?JWT:如何在标头中发送授权?
【发布时间】: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 文档中提到了我上面使用的表单的使用。但不起作用。

【问题讨论】:

    标签: php rest laravel token 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();
      

      【讨论】:

      • 确实没有服务器端标头。根据他的说法添加,但它甚至不起作用。但我认为现在它与应用程序有关。
      猜你喜欢
      • 2016-07-12
      • 2023-02-23
      • 2015-09-27
      • 2019-02-27
      • 2017-04-09
      • 2019-09-23
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多