【问题标题】:Laravel 5.4 - Cookie QueueLaravel 5.4 - Cookie 队列
【发布时间】:2017-12-24 03:48:39
【问题描述】:

我使用的是 Laravel 5.4,我写了类似的东西:

     Cookie::queue(
        'refresh_token',
        $data->refresh_token,
        864000, // 10 days
        null,
        null,
        false,
        true // HttpOnly
    );

    return response('hello world');

返回的响应不包含 refresh_token cookie,而 return response('hello world')->withCookie(...) 包含。

Laravel 5.4 文档不再像 5.0 文档那样声明排队 cookie。 这是否意味着该功能在 5.4 版本中已被删除,还是我的代码有误?

为了完整起见,我使用的是 Dingo API 包并制作了响应。

感谢您的帮助。

【问题讨论】:

  • 小心,“10天”的评论不好。该值以分钟而不是秒为单位传递。要在 10 天内到期,您需要 10*24*60 = 14400

标签: laravel cookies dingo-api


【解决方案1】:

我发现:

api请求没有启用cookie排队,这就是它不起作用的原因。

我必须在相应文件的中间件部分添加:

protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,

        //added below line at end of the array
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    ];

打开文件App/Http/Kernel.phpprotected $middleware数组中添加\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,行,如上面代码sn-p所示,再次测试它现在应该可以工作了。

【讨论】:

  • 你救了我的命 :)
  • 壮观的答案!
【解决方案2】:

如果有人喜欢 Google首先它。 OP 并非如此,但正是它把我带到了这里。 ;)

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 2017-10-08
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多