日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSO单点登录之跨域问题

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSO单点登录之跨域问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一次寫博客,與大家共勉.

這里用到的原理其實非常簡單,將cookie存在一個公共的站點的頁面上就可以了,這里我們管那個站點叫主站S.

先說說所謂的跨域

環境1:a.xxx.com需要跟b.xxx.com實現跨域,這種比較簡單,只需要設置cookie的域名關聯域就可以了 cookie.Domain = "xxx.com",這樣兩個域名間的cookie就可以互相訪問,實現跨域.

環境2:a.aaa.com需要跟b.bbb.com實現跨域,這種不同域名的情況下,想要實現就必須換種方式了.

?在這里我將引入第三者,s.sss.com這個站點,就是某個瀏覽器同時打開了這3個站點,我們訪問A站點,先判斷自身是否登錄,如果session為空,就重定向到S站點,判斷S站點上面是否有cookie,如果S站點上面也沒有cookie,則由S站點重定向到A站點的登錄頁.

?這樣我們就實現了第一步,S站做的的就是隱藏在幕后,子站先判斷自己是否存在session,如果不存在,就重定向到主站S上面去驗證.

第二步,驗證登錄信息合法性.這里我引入token(令牌),網上有很多資料,描述token的傳遞,工作方式是這樣,A登錄成功,保存自身的session,重定向到S,S在自己站點保存一個session跟cookie,session保存token對象{tokenID,userName,startTime,endTime},cookie保存tokenID,tokenID是一個Guid,把token對象緩存在集合里面,另起一個線程,根據endTime(過期時間)來定期清理集合列表,重定向到A的時候再將tokenID傳遞過去,拿到tokenID后,進入驗證環節,S站有提供一個接口,根據tokenID獲取token對象,如果獲取到對象,且沒有失效,則tokenID合法,跳入index頁面.情況2,A登錄,直接打開B,這時候B自身沒有session,會主動請求主站,主站會返回cookieID(S站存在客戶端的cookie),這個時候再走驗證環節,如果通過,則B根據token對象創建自身的session,再跳入index.

在這里整個單點登錄就已經成功了,接下來附上流程圖:

前面流程圖,太丑了,這里補上一張,希望有所幫助.

源碼:

SSO單點登錄

說明:新建2個站點xxx-xxx.com(主站),yyy-yyy.com(子站),修改hosts文件,將這兩個域名都指向127.0.0.1即可.

轉載于:https://www.cnblogs.com/tibos/p/5354000.html

總結

以上是生活随笔為你收集整理的SSO单点登录之跨域问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。