使用者登陸後把使用者資訊存到redis中,同時產生一個token值,當使用者點擊其他介面時攜帶token值,顯示登陸狀態,程式碼怎麼實現,我寫的程式碼總是實作不了?
PC 端相同一級網域下的單點登錄,只需要操作cookie 就行了當然,使用上token 跟cookie 是一樣的, 原理都差不多吧,不知道你實現不了是哪裡出問題了,乾脆看看,
1、在新頁面能不能取得 token2、根據 token 能不能在 redis 查到用戶資料3、能查到用戶資料的話,還有啥其他問題 ?
主要的問題是,你怎麼讓使用者造訪的時候帶上token資訊。 使用Redis存儲,然後和cookie的值進行驗證就可以了。
用戶點擊其他頁面的時候帶上用戶的id,你生成token的時候用uid加鹽或更複雜的加密演算法加密生成。接受到用戶的id,用id去加密與token比較。一致就是登陸了。 (這大概就是你想要實現的效果?)
等等,單點登入除了考慮token的問題,你要考慮A站登入了,產生的信息,怎麼在打開B站的時候直接獲取到。事實上,不同網站的cookies、session不一樣,沒辦法取得。我看過ucenter的做法,A登入之後,會給所有他的兄弟站點,透過js發起http請求,也就相當於將token傳給所有的站點,進行登入操作,每個站點都產生session跟cookies。
token的作用其實代替密碼 user_id=xxx&token=xxxx 透過使用者id查詢登陸資訊 比對查詢到的token是否與參數的token一致
單點登陸的我想到的方案例如用戶中心passport.test.com支付中心pay.test.com 在passport.test.com 設定p3p header("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");將使用者的登陸資訊加密寫入cookie
在 pay.test.com 取得cookie資訊傳到passport.test.com 介面驗證登陸資訊
PC 端相同一級網域下的單點登錄,只需要操作cookie 就行了
當然,使用上token 跟cookie 是一樣的,
原理都差不多吧,不知道你實現不了是哪裡出問題了,乾脆看看,
1、在新頁面能不能取得 token
2、根據 token 能不能在 redis 查到用戶資料
3、能查到用戶資料的話,還有啥其他問題 ?
主要的問題是,你怎麼讓使用者造訪的時候帶上token資訊。
使用Redis存儲,然後和cookie的值進行驗證就可以了。
用戶點擊其他頁面的時候帶上用戶的id,你生成token的時候用uid加鹽或更複雜的加密演算法加密生成。接受到用戶的id,用id去加密與token比較。一致就是登陸了。 (這大概就是你想要實現的效果?)
等等,單點登入除了考慮token的問題,你要考慮A站登入了,產生的信息,怎麼在打開B站的時候直接獲取到。事實上,不同網站的cookies、session不一樣,沒辦法取得。我看過ucenter的做法,A登入之後,會給所有他的兄弟站點,透過js發起http請求,也就相當於將token傳給所有的站點,進行登入操作,每個站點都產生session跟cookies。
token的作用其實代替密碼 user_id=xxx&token=xxxx 透過使用者id查詢登陸資訊 比對查詢到的token是否與參數的token一致
單點登陸的我想到的方案
例如
用戶中心passport.test.com
支付中心pay.test.com
在passport.test.com
設定p3p header("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");
將使用者的登陸資訊加密寫入cookie
在 pay.test.com 取得cookie資訊傳到passport.test.com 介面驗證登陸資訊