laravel 中,在不做 return 返回的情況下,cookie 的使用

laravel 的cookie 是在頭部的,我們使用的時候,一般需要在 response() 之后只用,例如 return response('ok')->withCookie('cookie_name','cookie_value');
可是很多時候我們?nèi)绻幌朐诜祷氐臅r候設(shè)置 cookie 又改怎么辦?我并沒有找到一個最優(yōu)的方案,可是我找到了一種解決方式。如果哪位讀者有更好的辦法,希望能夠及時告知。謝謝

  • 思路
    我本來試圖查找設(shè)置 cookie 的原裝方法,并使用它設(shè)置 cookie 。
    return response('ok')->withCookie('cookie_name','cookie_value');
追蹤源碼到 withCookie($cookie)
withCookie()

打印傳遞的 $cookie 參數(shù)的到結(jié)果 cookie_name
$cookie = call_user_func_array('cookie', func_get_args());
之后得到的 $cookie 是一個 cookie 對象 Symfony\Component\HttpFoundation\Cookie

圖片.png

由于以上結(jié)果,我不知道應(yīng)該怎么直接給 cookie 賦值

因為 laravel 的 cookie 是在頭部賦值的,所以,可以這樣賦值 header('set-Cookie cookie_name:cookie_value');,
但是這樣有個問題是, \Cookie::get('cookie_name') 獲取不到值。原因是這種方式取值,是取到的加密后的值,解密字符串 cookie_value 是沒有值的,所以得到的是空。那么我們可以不解密 cookie_name ,添加到 $except 數(shù)組,再次打印,即可看到 cookie_value 這個值

圖片.png

其實如果在設(shè)置 cookie 值的時候,如果可以直接加密, \Cookie::get('cookie_name') 就可以直接獲取到值

還有一種方式是直接使用全局變量 _COOKIE 也是可以直接取到原值的_COOKIE['cookie_name']

還有一種方式是 \Cookie::queue(name,value,time);
這種方式可以 \Cookie::get(name) 直接取值

        /** 意思是在下一個 response 返回的時候,帶上這個 cookie
         * Queue a cookie to send with the next response.
         *
         * @param array $parameters
         * @return void 
         * @static 
         */ 
        public static function queue($parameters = null)
        {
            \Illuminate\Cookie\CookieJar:: ($parameters);
        }
        
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,217評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,048評論 2 59
  • 登錄的需求 有些數(shù)據(jù),必須在登錄之后才能查看,所以我們在爬取過程中就會產(chǎn)生模擬登錄的需求,它有兩個點:1、未登錄的...
    中乘風(fēng)閱讀 4,457評論 0 1
  • 目標---機器(文化/人才)---結(jié)果 從上圖看,機器經(jīng)歷這個過程越頻繁越有效率,那么進化就越快。有效率的進化過程...
    財才閱讀 196評論 0 0
  • 每件事情都能見證成長,人生就是體驗成長的過程,最后都會有一定收獲,我們放飛自己的思想,讓他們飛到世界的角落,心有...
    心時空間閱讀 433評論 1 1

友情鏈接更多精彩內(nèi)容