鍍金池/ 問答/人工智能  PHP  HTML/ PHP利用redis實(shí)現(xiàn)單點(diǎn)登入的疑問

PHP利用redis實(shí)現(xiàn)單點(diǎn)登入的疑問

我們都知道登入一般都是利用session來保存一個(gè)狀態(tài),通過這個(gè)狀態(tài)來判斷是否登入網(wǎng)站,而且不同的域名生成的PHPSESSID也不同。
疑問:如果我們利用redis實(shí)現(xiàn)session共享來做單點(diǎn)登入,比如我有A.com 和B.com兩個(gè)網(wǎng)站。那我在A網(wǎng)站登入時(shí)生成的PHPSESSID和在B網(wǎng)站上生成的PHPSESSID肯定是不同的。如果我在A網(wǎng)站上登入了把session保存在redis上,那我訪問B站時(shí)怎么判斷已在A站登入過了,從而免登入B站呢。

回答
編輯回答
入她眼

你用redis來存session數(shù)據(jù)的話,讓多個(gè)域名的session_id一致就可以,可以參考session.cookie_domain設(shè)置
http://php.net/manual/zh/func...

2017年6月30日 19:19
編輯回答
熟稔

你說的這句話,是有矛盾的:“疑問:如果我們利用redis實(shí)現(xiàn)session共享來做單點(diǎn)登入,比如我有A.com 和B.com兩個(gè)網(wǎng)站。那我在A網(wǎng)站登入時(shí)生成的PHPSESSID和在B網(wǎng)站上生成的PHPSESSID肯定是不同的?!?session共享是要保證多域名的redis 的key是唯一的,登入時(shí)就要判斷是否存在已經(jīng)生成且沒過期的session;至于session key的生成,你可以自定義,例如使用用戶id來生成 session key都是可以的。

2018年7月12日 21:15