日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

laravel框架cookie应用到中间件的理解

發布時間:2025/4/9 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel框架cookie应用到中间件的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天博主接到一個委托的需求,大數據同事想要在請求日志抓取數據,希望在我的每個頁面進行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应用到中间件的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。