昨天博主接到一个委托的需求,大数据同事想要在请求日志抓取数据,希望在我的每个页面进行cookie的种植,方便他们进行定位分析,我思考了一下,简单呀,首先考虑的是通过中间件进行cookie种植,但是随后发现在现在的项目结构里贸然增加一个单纯的非通用性的中间件,会导致项目的耦合增加于是乎,开始研究项目路由,好在,我的项目里面,所有路由都指向了同一个控制器(框架结构里面还有其他项目),于是乎,开动。
首先,增加了一个cookie种植的私有方法,放到控制器的构造函数里面,这样就可以实现cookie种植啦,cookie操作直接使用了框架自带的cookie啦,在app.php里面:
中文官方文档里面cookie有两种用法,第一种就是实例化一个response类 ,然后用withCookie()方法去种植:
return response($content) ->header('Content-Type', $type) ->cookie('name', 'value', $minutes);
或者
$response = new Response();
$cookie = cookie('name,'value',10);//保存10分钟
return $response->withCookie($cookie);
但是经过百度之后发现了一个更更加灵活的使用方式:
Cookie::queue('name','value',10);
这种方式更加适用于控制器哦
但是这个里这么了博主好几个小时,网上其他大咖分享的知识,都是在控制器使用之后完美种植,奈何我无论如何都不能实现(response可以实现),郁闷,沉浸下来思考了一下,应该是我们项目和标准框架那里有差异,于是各种搜索,琢磨开始了,最后发现了一个可疑的类:AddQueuedCookiesToResponse,从字面可以看出它的功能,添加队列cookie到响应,而且还使用了getQueuedCookies()方法(注:和queue方法同属于CookieJar类),后来搜索后发现,标准框架里面,该类作为web中间件是被默认开启的,但是被人给注释掉了,哭~
好了,cookie种植已经解决,但是有个问题需要思考一下,之前一般用的中间件都是在执行控制器之前执行,为什么这个中间件是在之后执行呢?
关键点在于这里:
没错,就是$next($request),这里应该是把请求转发到下一个步骤了,也就是控制器,控制器执行完毕,返回一个响应类,如果需要在控制器执行完毕之后处理响应,就可以对返回的response进行相关操作了,总结完毕~

转载于:https://www.cnblogs.com/feiyujinghong/p/7324084.html

laravel框架cookie应用到中间件的理解相关推荐

  1. PHP中间件 middleware,Laravel框架控制器的middleware中间件用法分析

    本文实例讲述了Laravel框架控制器的middleware中间件用法.分享给大家供大家参考,具体如下: 场景:活动开始前只能访问宣传页面,开始后才可以访问其他页面: 步骤: 新建中间件, 注册中间件 ...

  2. php中间件怎么使用,laravel框架中间件简单使用方法示例

    本文实例讲述了laravel框架中间件简单使用方法.分享给大家供大家参考,具体如下: laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如 ...

  3. laravel框架的中间件是什么

    中间件顾名思义是指在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件.中间件分为前缀中间件,后置中间件.可以用于权限认证.日志记录等 中间件为过滤进入应 ...

  4. laravel框架基础知识总结

    一.laravel简介 laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全:以下是本人在学习过程中记录的laravel比较基础的资料,权当学习笔记,请大神们多多指教 ...

  5. Laravel框架中Guard的底层实现分析

    1. 什么是Guard 在Laravel/Lumen框架中,用户的登录/注册的认证基本都已经封装好了,开箱即用.而登录/注册认证的核心就是: 用户的注册信息存入数据库(登记) 从数据库中读取数据和用户 ...

  6. laravel框架应用和composer扩展包开发

    laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,laravel框架思想前卫,跟随时代潮 ...

  7. php框架所用到的核心概念,【PHP】PHP现代框架代表-Laravel框架核心技术特性

    一.php语言特点及发展现状 1.服务端脚本语言,自由度太大 ,一个业务逻辑可言写在模型里,控制器里,也可以单独封装成一个类,甚至可以嵌入到html里,这样势必会造成混乱,业务逻辑散落在各处,尤其对于 ...

  8. 做一个laravel框架下的系统日志

    做一个laravel框架下的系统日志(php) 简要说明 第一步:新建目录下系统日志 新建路由 转到控制器 转到第一个首页视图方法对应view 此时打开本地localhost对应视图,即可看见这样的界 ...

  9. Laravel框架 笔记

    Laravel框架 中文文档 环境开发和配置要求 PHP >= 7.1.3 OpenSSL PHP PHP PDO 扩展 PHP Mbstring 扩展 PHP Tokenizer 扩展 PHP ...

最新文章

  1. 【Design pattern】简单工厂过渡策略模式
  2. QEMU中smp,socket,cores,threads几个参数的理解
  3. RTC是DS1339,驱动采用的是rtc-ds1307.c
  4. WINCE下实现基于USB的camera
  5. 题目1076:N的阶乘
  6. kotlin集合操作符——元素操作符
  7. 基本注射/资格赛,范围
  8. 领悟非凡,只有西方人才能做出来的效果。。。不是技术,而是人文和胸怀
  9. POJ NOI MATH-7832 最接近的分数
  10. ELK logstash中grok使用if判断消息是否包含某个字符串及以某个字符开头
  11. 微信小程序实例源码大全
  12. 铝合金轨道系统组合型式和配件名称
  13. html登陆滑动验证,js实现滑动滑块验证登录的方法
  14. java写颜色识别_Java+Opencv 颜色识别
  15. SLC、MLC、TLC和QLC这几种存储颗粒的区别
  16. php 竖向文字水印,PHP中实现文字水印和图片水印的方法
  17. 基于主成分分析法的PCA人脸识别算法实现
  18. Live2D桌面动画模型,在桌面显示
  19. IDEA创建java项目src下没有办法创建包文件/MAVEN模块名变灰且模块多道横杠
  20. c语言 平均差 标准差,平均差与标准差计算公式中的平均数是()。

热门文章

  1. Python+selenium 自动化-chrome驱动的下载安装
  2. [YTU]_2575( 交通工具信息)
  3. [YTU]_2008( 简单编码)
  4. 2.2.1生成数 自数
  5. unique--求集合的单值元素
  6. 怎么求人眼图像中的噪声
  7. Python通过一个网页地址获得网页标题Title
  8. 第二章:2.4 卷积性质
  9. 交替性注意力_如何从心理学角度解释“专注力”,“专注力”对一个人的影响?...
  10. 登录锁定状态下Win7关机技巧总结