sso單點登入

2021-08-09 05:32:27 字數 1319 閱讀 3282

1、sso(single sign-on)單點登入

解決了使用者只需要登入一次就可以訪問所有相互信任的應用系統,而不用重複登入,對使用者資訊進行統一管理。

2、session共享

分布式中,為了提公升集群效能,我把使用者的session資訊儲存到redis中,key的格式例如(user_session:tokenid)value中存的是使用者的json串,而且為了安全不能儲存使用者的密碼到redis中,設定有效期為30分鐘,並且在每次通過token查詢使用者資訊的時候需要重置它的有效時間。

3、登入

登入驗證成功,生成乙個token儲存到cookie中,有效期-1(session有效期),每次請求通過token從redis快取中取出使用者資訊

//驗證通過  生成token 放入使用者資訊到session中  

string token = uuid.randomuuid().tostring().replaceall("-", "");

//把使用者資料放入到redis中 不需要使用者的密碼

user.setpassword(null);

//key 為 user_session:token value 為user物件的json串

jedisclient.set(user_session+":"+token, jsonutils.objecttojson(user));

//設定key的有效期

jedisclient.expire(user_session+":"+token, user_session_expire);

//返回成功資訊 需要使用者的token資訊

return taotaoresult.ok(token);

4、通過cookie中的token查詢取出使用者資訊

通過jquery取出cookie中的token,然後通過http請求得到使用者資訊

//查詢出redis中的使用者資訊

string json = jedisclient.get(user_session+":"+token);

//判斷是否為空

if(stringutils.isblank(json))

//重置session有效期

jedisclient.expire(user_session+":"+token, user_session_expire);

//得到pojo

tbuser user = jsonutils.jsontopojo(json, tbuser.class);

//返回結果

return taotaoresult.ok(user);

SSO單點登入

單點登入sso single sign on 就是在多個系統共存的環境下,使用者在一處登入 就不用在其他系統中登入,也就是使用者的一次登入就可以得到其他所有系統的信任。要點 儲存信任 驗證信任 最簡單實現sso的方法就是cookie,實現流程 然而cookie有如下缺點 1 cookie不安全 2 ...

sso單點登入

一 什麼是單點登入sso single sign on sso是一種統一認證和授權機制,指訪問同一伺服器不同應用中的受保護資源的同一使用者,只需要登入一次,即通過乙個應用中的安全驗證後,再訪問其他應用中的受保護資源時,不再需要重新登入驗證。二 單點登入解決了什麼問題 解決了使用者只需要登入一次就可以...

SSO單點登入

今天,當我們提起 sso的時候,我們通常是指 web sso 它的主要特點是,sso應用之間走 web協議 如 並且sso 都只有乙個登入入口。簡單的sso 的體系中,會有下面三種角色 1,user 多個 2,web 應用 多個 3,sso 認證中心 1個 雖然sso 實現模式千奇百怪,但萬變不離其...