Laravel項目和其它項目共享session問題

我這邊總結一下,也許之後有人會須要,
其實Laravel的session並非用PHP自帶的session管理器。而是完徹底全本身實現了一個。
注意是完徹底全本身實現的,並非傳統意義上用session_set_save_handler自定義的session處理器。

因此解決 和另外一個ThinkPHP項目的session共用 的問題就很簡單了~
在Laravel中啓動PHP自帶的session就行了,也就是session_start。

這是他們的代碼註釋 "Note that the Laravel sessions do not make use of PHP "native" sessions in any way since they are crappy."
請記住Laravel在任何地方都沒有用到PHP「原生」的session,由於它很蹩腳。

好吧,我如今只要啓動蹩腳的session就行了。

by kankana

以上是如何從laravel訪問其餘程序的session.

如下,則是如何從外部訪問laravel的session (file).

當laravel的session driver設置爲file, 這些session files都是以json形式存放在app/storage/sessions裏面.

關鍵是,如何找到對應的session文件?

這個文件名是以加密形式存儲在cookie的laravel_session裏.

如何解密laravel_session獲取這個文件名?

1, 首先安裝這個庫:

https://github.com/illuminate/encryption

2, 獲取加密key

位於app/config/app.php 的 key

3,

$encrypter = new Illuminate\Encryption\Encrypter($key);
$session_filename = $encrypter->decrypt($_COOKIE['laravel_session']);

大體如此.php


================================laravel

===================================git

項目之間Session共用的最佳實踐應該是將Session信息存在 諸如Redis 或者數據庫中 項目只需讀取Redis或者數據庫便可github

相關文章
相關標籤/搜索