TP、PHP同域不同子级域名共享Session、单点登录
生活随笔
收集整理的這篇文章主要介紹了
TP、PHP同域不同子级域名共享Session、单点登录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TP、PHP同域不同子級域名共享Session、單點登錄?
目的:
-
為了部署同個域名下不同子級域名共享會話,從而實現單點登錄的問題,一處登錄,同域處處子系統即可以實現自動登錄。
?
PHP支持通過設置cookie使得同域不同子域共享SESSION
1. 通過在執行PHP的入口文件中設置如下代碼:
- ini_set('session.cookie_path', '/');
- ini_set('session.cookie_domain', '.mydomain.com');
- ini_set('session.cookie_lifetime', '1800');
2. 通過在php.ini里設置:
- session.cookie_path = /
- session.cookie_domain = .mydomain.com
- session.cookie_lifetime = 1800
TP5.1同樣也支持配置設置,接下來演示TP如何設置得到共享會話:
首先拉取通過下載2個TP5.1項目,然后根據自己的Web環境配置,放到對應的根目錄,可以使用nginx、或者Apache服務。
配置2個項目的測試域名,配置hosts文件。
刷新hosts生效,然后通過域名。
然后在test1.t5.com指向的項目的Index控制器下添加如下代碼。
這時候在瀏覽器訪問http://test1.t5.com/,打開調試。
然后在修改test2.t5.com指向的目錄下的Index控制器代碼,如下。
然后通過瀏覽器訪問。
發現是NULL,且sessionID不一致,這時是因為沒有配置導致會話不能共享。
TP需要配置2處地方,1處是cookie文件,1處是session文件,2處文件都在config目錄下,這里我使用了Redis來作為共同的會話存儲,也可以使用文件或者數據庫方式,自行配置。cookie.php,session.php配置分別如下,只要配置domain選項即可,兩個項目文件配置均一致。
配置完后瀏覽器分別清空之前兩個域名的cookie,可以使用editthiscookie谷歌瀏覽器擴展清除。
清除完首先訪問http://test2.t5.com/項目,發現是Null值。
接下來訪問http://test1.t5.com/。由此可以發現cookie發送的SessionID一致。
最后讓我們再來訪問第二個測試域名,http://test2.t5.com/。
由此,測試成功,
?
這樣子我們就可以通過同域下,不同的子級域名共享會話,解決了同域單點登錄的問題。
轉載于:https://www.cnblogs.com/will-xz/p/10428772.html
總結
以上是生活随笔為你收集整理的TP、PHP同域不同子级域名共享Session、单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑快捷方式图标箭头(电脑快捷方式图标箭
- 下一篇: 8-4 Fabled Rooks uva