在Laravel 5中间件中获取cookie

时间:2016-11-28 14:06:27

标签: laravel cookies laravel-5 session-cookies

我试图从Laravel 5.3中的中间件检索cookie,但似乎$ request-> cookie('语言')为空。我猜测它只是在中间件运行后设置的。

我在某处读到了我应该使用\ Cookie ::排队('语言'),但它仍然是空的。

我唯一的选择是使用$ _COOKIE变量吗?

2 个答案:

答案 0 :(得分:3)

您何时设置此Cookie?

请记住,cookie存储在浏览器中,因此用户需要获取响应,以便您以后能够检索cookie。

您应该能够在成功发送给用户的响应设置cookie后获取cookie。还要记住,如果你使用dd(),那就不会让cookie被创建,因为它会跳过所有cookie头被发送给用户。

尝试从中间件获取Cookie时可能遇到的另一个问题是,它可能无法自动解密,因此您必须自己进行解密。

示例:

\Crypt::decrypt(Cookie::get('language'))

答案 1 :(得分:1)

如果有人在2019年使用Laravel 5.8遇到此问题:
您将需要使用handleHardwareBack = () => { this.props.navigation.goBack(null) console.log(" ********** This is called ************ "); return true; } \Crypt::decryptString(Cookie::get('language'))
否则它将尝试反序列化字符串,然后发生奇怪的事情。