flask - python web中如何共享登錄狀態(tài)?
問題描述
在一個域名下面會有好多個子域名,每個子域名對應(yīng)一個子系統(tǒng),這些子系統(tǒng)有的是用DJANGO,有的是用Flask等不同的框架開發(fā),那么,我們?nèi)绾卧谶@不同系統(tǒng)間共享登錄狀態(tài)?也就是說,只要在某一個系統(tǒng)登錄了,在使用其他系統(tǒng)的時候也共享著登錄的狀態(tài),不需要再次登錄,除非登錄失效。這樣的話要怎么做呢?
問題解答
回答1:看看什么叫單點(diǎn)登錄
回答2:可以參考:https://github.com/castlabs/d...
你也可以自己實(shí)現(xiàn):1、搞一個用戶中心(用于賬戶管理、登錄等)2、訪問一個子系統(tǒng),先判斷是否有token。如果沒有,或者已過期,則自動跳轉(zhuǎn)到用戶中心。3、用戶中心登錄成功以后,生成一個token,并跳轉(zhuǎn)回之前要訪問的子系統(tǒng)(帶上token)4、再訪問別的系統(tǒng)時,都需要帶上這個token。
還有個辦法,不需要顯式的帶token:用戶中心登錄成功以后,cookie還保存登錄信息。訪問各個子系統(tǒng)(頁面加載)的時候,通過jsonp去用戶中心校驗(yàn)是否已登錄:假如用戶中心域名www.a.com,那么瀏覽器會緩存該域名及其對應(yīng)的cookie;而jsonp跨域去請求www.a.com的時候,會自動帶上這個cookie的。
相關(guān)文章:
1. 致命錯誤: Class ’appfacadeTest’ not found2. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?3. objective-c - iOS開發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開發(fā)的一個app?4. css - 移動端字體設(shè)置問題5. python - 管道符和ssh傳文件6. javascript - 循環(huán)嵌套多個promise應(yīng)該如何實(shí)現(xiàn)?7. mysql優(yōu)化 - 關(guān)于mysql分區(qū)8. 請教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒有反應(yīng)9. 前端 - IE9 css兼容問題10. javascript - ionic2 input autofocus 電腦成功,iOS手機(jī)鍵盤不彈出
