PHP - Laravel 设置 cookie

一、简介

  • cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,能够创建并取回 cookie 的值。

  • Laravel 框架为了安全,它的 cookie 是加密的。

二、cookie()

  • 属性参数分析

    cookie($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $sameSite);
    
    参数说明举例
    namecookie的名字使用 $_COOKIE[‘cookiename’] 调用名为 cookiename 的 cookie。
    valuecookie的值,存放在客户端,不要存放敏感数据假定 name 是 ‘cookiename’,可以通过$_COOKIE[‘cookiename’] 取得其值。
    minutesCookie 过期的时间(分钟)。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie 的失效期。或者用mktime()来实现。time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效。
    pathCookie 在服务器端的有效路径。如果该参数设为 ‘/’ 的话,cookie 就在整个 domain 内有效,如果设为 ‘/foo/’,cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。
    domain该 cookie 有效的域名。要使 cookie 能在如 example.com 域名下的所有子域都有效的话,该参数应该设为 ‘.example.com’。虽然 . 并不必须的,但加上它会兼容更多的浏览器。如果该参数设为www.example.com 的话,就只在 www 子域内有效。细节见Cookie 规范中的 tail matching。
    secure指明 cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE 时,cookie 仅在安全的连接中被设置。默认值为FALSE。0 或 1
    httpOnly是否只支持 HTTP 请求0 或 1
    sameSiteChrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。参考地址 http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
  • 不是特殊情况,一般使用前 4 个参数就够了:

    cookie($name, $value, $minutes);
    cookie($name, $value, $minutes, $path);
      
    cookie('dzm', 'dzm123456', 1);
    // '/' 为根目录,不填默认就是根目录
    cookie('dzm', 'dzm123456', 1, '/');
    

三、Laravel 使用 cookie()

  • 测试案例

    Route::get('req', function () {
        // 设置 cookie,1分钟有效期
        return response('我设置了Cookie')->cookie('name', 'dzm', 1);
        // 获取 cookie
        return request() ->cookie('name');
    });
    

    《PHP - Laravel 设置 cookie》

    《PHP - Laravel 设置 cookie》

    过期时间到了则自动删除:

    《PHP - Laravel 设置 cookie》

    原文作者:卡尔特斯
    原文地址: https://blog.csdn.net/zz00008888/article/details/114373973
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞