Laravel无法读取“最近”创建的Cookie

时间:2019-03-06 14:40:20

标签: laravel laravel-5 cookies

我有一个项目,该项目使用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,而无需先进入视图?

1 个答案:

答案 0 :(得分:0)

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

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

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