【问题标题】:Saving jwt token in cookie in laravel在 laravel 的 cookie 中保存 jwt 令牌
【发布时间】:2020-08-19 13:25:19
【问题描述】:

当我在我的 laravel 中创建一个 jwt 令牌并将其保存在 cookie 中时,我猜它会再次被散列,我无法再次从 cookie 中检索我的 jwt 令牌。

例如,这是我的原始令牌:

$token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1OTc4MDkzNDEsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSIsInVybCI6InRlc3QuY29tIiwiZXhwIjoxNTk3OTA5MzQxLCJpc3MiOiJ0ZXN0In0.I8p0x5DM8wXruucgkp1W7b4XbHEPEyJkQn2b71e9XTA

它的有效载荷是:

$payload = [
        'iat' => time(),
        'email' => "test@test.com", 
        'url'=>"test.com", 
        'exp' => time() + 100000,
        'iss' =>"test",
    ];

我用这个命令把它保存在 laravel cookie 中:

\Illuminate\Support\Facades\Cookie::queue("jwt_token", $token, 60);

当我检索 cookie 时,该值是无法解码的其他值。

注意:令牌将被同一域中的另一个应用程序使用,该应用程序不是基于 laravel 的。

【问题讨论】:

    标签: laravel cookies jwt


    【解决方案1】:

    我用这个得到了完全相同的令牌字符串。

    use Illuminate\Support\Facades\Cookie;
    
    $value = Cookie::get('jwt_token');
    

    您可以像这样更改您的令牌:

    $token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1OTc4MDkzNDEsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSIsInVybCI6InRlc3QuY29tIiwiZXhwIjoxNTk3OTA5MzQxLCJpc3MiOiJ0ZXN0In0.I8p0x5DM8wXruucgkp1W7b4XbHEPEyJkQn2b71e9XTA';
    

    【讨论】:

    • 问题是令牌将被同一域中的另一个应用程序使用,而不是基于 laravel。
    【解决方案2】:

    解决方案在 EncryptCookies 中间件中。我将我的 jwt_token 放在了该类的 $except 属性中,它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-15
      • 2016-09-13
      • 2017-12-13
      • 2020-12-25
      • 2021-10-16
      • 1970-01-01
      • 2016-10-12
      相关资源
      最近更新 更多