Php JWT Cookie未正确存储-Laravel

Php JWT Cookie未正确存储-Laravel,php,laravel,cookies,jwt,Php,Laravel,Cookies,Jwt,我使用的是Laravel5.1,我试图实现一个基本的JWTAuth逻辑 当我创建jwt_令牌右侧时(我将其记录到laravel.log,令牌按预期将其分为三个不同的部分),当我尝试使用jwt_令牌值创建cookie时,会创建一个完全不同的cookie,没有点除法,并且它比原始的jwt\u令牌大得多 我认为代码非常简单: $jwt_token = $this->findOrCreateUser($user); Log::error('My jwt_token is '. $jwt_token

我使用的是Laravel5.1,我试图实现一个基本的
JWTAuth
逻辑

当我创建
jwt_令牌
右侧时(我将其记录到
laravel.log
,令牌按预期将其分为三个不同的部分),当我尝试使用
jwt_令牌
值创建cookie时,会创建一个完全不同的cookie,没有点除法,并且它比原始的
jwt\u令牌
大得多

我认为代码非常简单:

$jwt_token = $this->findOrCreateUser($user);
Log::error('My jwt_token is '. $jwt_token); //from the log here i see the right jwt_token

//i disable the http-only flag because i want to read it with js

return redirect('/index.html')->withCookie(Cookie::make('jwt_token',$jwt_token,1000,null,null,false,false));
我真的很高兴,如果有人能给我一些关于什么可能是错误的指点


感谢

Laravel 5.1默认附带一个名为
EncryptCookies
的中间件,该中间件注册在HTTP内核的全局
$middleware
数组中。因此,当发送到浏览器时,cookie会自动加密,这就是为什么cookie值不是JWT令牌的纯文本表示形式

您可以通过两种方式轻松解决此问题:

1.将cookie名称添加到
App\Http\Middleware\EncryptCookies
中的
$except
数组中:

protected $except = [
    'jwt_token'
];
2.注释/删除
App\Http\Kernel
类中的
EncryptCookies
中间件(尽管我不建议这样做,除非您特别希望所有cookies都不加密):

protected$middleware=[
\Illumb\Foundation\Http\Middleware\CheckFormIntenanceMode::class,
//\App\Http\Middleware\EncryptCookies::class,
\Illumb\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illumb\Session\Middleware\StartSession::class,
\照亮\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
];

谢谢!回答得很好。我应该仔细阅读这里的文件,你说得对!