laravel框架中的session問題


這兩天一直在鼓搗服務器,配置環境,在搭建laravel的過程之中,發現了laravel中的session的一些問題,這里總結一下:

  (1):我在服務器上搭建了多個sever,為了測試學習,分別使用不同的php框架,laravel,tp,原生,一開始發現session跨域的問題,就修改了php.ini中的session_cookie_domain參數,

       設置為session_cookie_domain= .xxxx.top (注:php.ini中的cookie.path默認為 /,所以不需要進行修改 )

       在設置成功以后,重啟php-fpm,發現除了laravel框架不能讀取出其他server中設置的session以外,其他server可以互相查看session(也都讀取不了laravel中設置的session)

       后來查了一下,發現是這樣的:laravel框架對session做了處理,沒有使用php中的session處理方式,而是使用了自己獨特的方式(session的存儲位置也發生了變化),所以才有上述的問題

       如果想在laravel中查看其他server添加的session,可以使用php原生的session_start(),$_SESSION等函數進行處理。其他server如果想要查看laravel中使用框架自定義的方式設置的        session,就比較的麻煩,網上有人說可以安裝插件來實現,這里覺得這種方式並不好,就沒有做實驗

 (2):如何解決多個項目的session跨域問題:

        1):在沒有使用laravel相關框架的時候,只需要配置php.ini中相關的參數就可以。在使用多種框架的使用,特別是使用laravel框架的使用,可以統一使用php原生的session處理方式(這種方式的確可以解決上述問題,但是相當於浪費了框架的封裝,並不推薦)

        2):我認為最好的解決辦法是,使用數據庫(mysql,nosql)來存儲session,目前主流的php框架都是支持session存儲在數據庫中的相關操作的,這樣在操作上也能加快訪問的速度

 

 

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM