信息发布→ 登录 注册 退出

Laravel Cookie怎么设置_Laravel Cookie读取与删除方法

发布时间:2025-11-28

点击量:
Laravel通过withCookie()设置加密Cookie,如return response()->withCookie(cookie('name', 'John Doe', 60));使用$request->cookie('name')读取;删除则用withCookie(cookie()->forget('name')),确保路径一致,操作安全简便。

在 Laravel 中操作 Cookie 非常简单,框架提供了便捷的辅助函数和响应实例方法来设置、读取和删除 Cookie。下面详细介绍这些常用操作。

设置 Cookie

在响应中添加 Cookie,可以使用 withCookie() 方法。Laravel 使用加密签名的 Cookie,默认情况下客户端无法修改或伪造。

示例:在控制器中设置一个 Cookie

return response('Hello')->withCookie(cookie('name', 'John Doe', 60));

说明:

  • cookie('name', 'value', $minutes) 创建一个持续 60 分钟的 Cookie
  • 第三个参数是有效期(分钟),默认为永久会话级别(关闭浏览器失效)
  • 该 Cookie 会被自动加密,前端不可见明文

如果需要设置更复杂的选项,比如作用路径、域名、是否仅 HTTPS 等,可以使用 cookie::make() 或链式调用:

$cookie = cookie()->forever()->path('/')->secure(true)->make('theme', 'dark');
return response('Dark mode enabled')->withCookie($cookie);

读取 Cookie

通过请求实例可以轻松读取客户端发送的 Cookie,使用 Cookie::get() 或从 $request 对象获取。

use Illuminate\Http\Request;

public function show(Request $request)
{
    $name = $request->cookie('name');
    // 或使用辅助函数
    $name = cookie('name'); // 注意:此方式获取的是已存在的输入 Cookie,不是写入中的
}

注意: 推荐使用 $request->cookie('key') 方式读取用户发来的 Cookie 值。

删除 Cookie

删除 Cookie 实际上是设置一个过期时间为过去的 Cookie,让浏览器自动清除它。

return response('Cookie deleted')->withCookie(cookie()->forget('name'));

也可以手动指定一个已过期的 Cookie:

return response()->withCookie(cookie('name', '', -1));

关键点:

  • 使用 forget() 方法最安全可靠
  • 确保删除时的路径(path)与设置时一致,否则可能无法正确清除

基本上就这些。Laravel 的 Cookie 操作简洁且安全,默认开启加密保护,适合大多数 Web 应用场景。

标签:# laravel  # 前端  # cookie  # 浏览器  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!