【问题标题】:Reading Authorization header for JWT Token using Laravel 5, CORS, and JWTAuth使用 Laravel 5、CORS 和 JWTAuth 读取 JWT 令牌的授权标头
【发布时间】:2015-09-19 05:23:36
【问题描述】:

我很难弄清楚这一点。我在我的 Laravel 5 API 上使用 JWTAuth 并且我在读取令牌时遇到问题。这是我知道并尝试过的:

我已将我的 CORS 配置设置为允许我的 API 路径的所有标头:

    return array(
    'defaults' => array(
        'supportsCredentials' => false,
        'allowedOrigins' => array(),
        'allowedHeaders' => array(),
        'allowedMethods' => array(),
        'exposedHeaders' => array(),
        'maxAge' => 0,
        'hosts' => array(),
    ),

    'paths' => array(
        'api/*' => array(
            'allowedOrigins' => array('*'),
            'allowedHeaders' => array('*'),
            'allowedMethods' => array('*'),
            'maxAge' => 3600,
        ),
        '*' => array(
            'allowedOrigins' => array('*'),
            'allowedHeaders' => array('Content-Type'),
            'allowedMethods' => array('POST', 'PUT', 'GET', 'DELETE'),
            'maxAge' => 3600,
            'hosts' => array('api.*'),
        ),
    ),

);

我已将以下内容添加到启用 apache 的站点的 conf 文件中:

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

我可以在 Chrome 工具中看到标头正在以正确的令牌和正确的格式传回:授权:不记名令牌字符串

谁能看到我做错了什么?有谁知道这方面的问题?

【问题讨论】:

    标签: laravel-5 cors jwt


    【解决方案1】:

    我知道我的问题出在哪里。根据JWTAuth Github page上的文档:

    Apache 用户注意事项

    如果 Authorization 标头不是 base64,Apache 似乎会丢弃它 编码的用户/通行证组合。因此,要解决此问题,您可以将以下内容添加到 你的 apache 配置

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

    我认为 apache 配置意味着 000-default.conf 文件。我错了。事实上,这应该在 .htaccess 文件中完成。一旦完成...... POOF,一切正常!

    【讨论】:

      【解决方案2】:

      在我的AWS 服务器EC2 中,我必须编辑我的/etc/apache2/apache2.conf 文件并在最底部粘贴:

      SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
      

      然后在我的.htaccess

      RewriteCond %{HTTP:Authorization} .
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      

      这按预期工作。

      【讨论】:

        猜你喜欢
        • 2015-09-27
        • 2016-03-08
        • 2020-01-05
        • 2020-04-28
        • 2021-07-22
        • 1970-01-01
        • 2017-08-22
        • 2020-11-22
        • 2015-05-26
        相关资源
        最近更新 更多