亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

想要實現控制用戶不能同時在多處登錄?該怎么做?

想要實現控制用戶不能同時在多處登錄?該怎么做?

千巷貓影 2022-09-02 15:11:24
系統要求用戶在使用過程當中,不能再以此用戶重復登錄系統,請問下大家都是用的怎樣一個方案解決的?
查看完整描述

2 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

這樣來解決,
用戶再次登錄的話,在登陸中判斷是否存在用戶的信息
如果存在提示用戶重復登陸,并注銷上次登陸。

查看完整回答
反對 回復 2022-09-06
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

分兩種情況:

一. 如果用戶001在客戶端A登錄, 然后在客戶端B登錄, 系統強制A下線.

二. 如果用戶001在客戶端A登錄, 然后在客戶端B登錄, 提示001已經登錄, 禁止其登錄.

下面介紹下我對方案二的看法:

在集群的情況下, 需要使用中心的cache集群(比如memcached). 為了達到一個時刻一個用戶僅有一個會話, 需要做一個userId(用戶在系統的唯一標識, 或者memberId之類的)的緩存. 下面幾個問題需要注意:

  1. 當用戶登錄時, 首先需要查詢當前用戶對應的userId在緩存中是否已經存在. 如果存在, 拒絕登錄

  2. userId在緩存中的超時時間應該和session保持一致. 當訪問系統時, 同時也需要延長userId的生命周期. 可以每N分鐘刷新一次.

  3. 當系統退出時, 在清除session的同時也需要清除userId.

  4. 存在的問題: 如果客戶端是瀏覽器. 在用戶001在瀏覽器A登錄后, 以非常規的方式登出, 比如關閉瀏覽器而不是點擊登出按鈕, 此時服務中userId的緩存任然存在, 用戶無法在其他瀏覽器中登錄, 只能等到緩存失效后方能登錄. 基于這個原因. 我推薦選擇方案一

查看完整回答
反對 回復 2022-09-06
  • 2 回答
  • 0 關注
  • 295 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號