【问题标题】:Laravel can't read a "recently" created cookieLaravel 无法读取“最近”创建的 cookie
【发布时间】:2019-03-08 03:53:43
【问题描述】:

我有一个项目使用像 token_refreshToken_ 这样的 cookie 对用户进行身份验证,还有一个中间件拦截我的路由并验证用户是否已登录。
在我的中间件中,当我需要更新 token_ 时,我有以下代码:

namespace App\Http\Middleware\VerifyAccessToken

$cookie_name = "token_";
$cookie_value = $obj->access_token;
$expires_in = $obj->expires_in;
$time = time() + $expires_in; // 3600 = 1 hora
$path = "/";
$domain = env('COOKIE_DOMAIN');
setcookie($cookie_name, $cookie_value, $time, $path, $domain, false, true);

$cookie_name = "refreshToken_";
$cookie_value = $obj->refresh_token;
setcookie($cookie_name, $cookie_value, $time + 3600, $path, $domain, false, true);

return $next($request);

它看起来很好,但问题是:
在中间件拦截我的路由并更新 cookie 后,请求会发送到他的控制器,但是在那里,我无法使用 $_COOKIE['token_'] 访问 cookie,并且出现错误,但如果我查看 chrome 的检查器,cookie 是在那里并重新加载页面 (F5) 我可以访问控制器中的 cookie
有没有一种方法可以让我访问控制器中的 cookie 而无需之前去视图?

【问题讨论】:

标签: laravel laravel-5 cookies


【解决方案1】:

在Laravel中读取Cookie的值,是否需要使用:

$token = Cookie::queued('token_');
dd($token->getValue());

https://api.symfony.com/3.0/Symfony/Component/HttpFoundation/Cookie.html

【讨论】:

    猜你喜欢
    • 2017-05-13
    • 2018-01-03
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多