單點登入實現多地同一賬號踢出功能

2021-08-19 23:15:39 字數 496 閱讀 1641

單點登入,踢出實現,一碰到,感覺矇圈了。

一哥們跟我講,如果同乙個賬號,在乙個地方登入之後,怎麼保證有其他地方登入就踢出這個的登入。一問之後,我的第一反映就是我們可以使用使用者id來進行控制啊,但反應過來才發現不是每乙個公司都會為使用者表建立使用者id的。所以然後那哥們給我提示了一下,他說用ip啊,瞬間蒙了,感覺ip控制是個好牛b的東西,沒做過。

這裡主要講一下上面這個需求的實現方案:

方案二:

使用cas來保證唯一登入

每次在cas服務端登入成功時記錄當前登入帳號(唯一)(list)。每次登入操作之前,驗證當前登入帳號是否存在快取中,如果存在就去找cas的ticket快取(我是直接用的cas的快取機制,有心人可以自己封裝快取資訊),然後遍歷快取找到當前使用者匹配的ticket,找到後執行ticket過期操作,同時在快取中刪除當前ticket。

詳細操作參考:

現在實現這一類操作的方案有很多,這裡僅提供以上兩種,有感興趣的朋友可以補充哦!

單點登入之限制同一賬號在多平台同時登入

在很多web產品中都需要實現在同一時刻,只能允許乙個賬號同時只能在乙個瀏覽器當中登入。通俗點講就是當a賬號在瀏覽器1當中登入了,此時在瀏覽器2中登入a賬號。那麼在瀏覽器1中的a賬號將會被擠出去,當使用者操作瀏覽器1的頁面,頁面會跳到登入頁面,需要重新登入。那麼我們怎麼實現這樣的功能呢?下面將給大家進...

同乙個伺服器實現單點登入

一.單點登入的前提條件 要想實現此功能要有一組加密與驗證加密的金鑰.修改節點下的節點屬性,如下 code 1.validationkey為用於驗證加密資料的金鑰.最小長度為40個字元 20位元組 最大長度為128個字元 64位元組 2.decryptionkey為用於加密資料的金鑰.最小長度為16字...

同乙個伺服器實現單點登入

一.單點登入的前提條件 要想實現此功能要有一組加密與驗證加密的金鑰.修改節點下的節點屬性,如下 code machinekey validationkey 6e993a81cf4bdca1c1031528f55dadbb8af1772a validation sha1 decryptionkey 2...