這是一個我們公司的面試題。我來給你一個簡單的方案。
前后端分離的情況下后端無法通過session來判斷用戶是否處于活躍狀態,而用戶保持登陸和登陸失效則需要前端有一個完整的方案。
1、用戶登陸及登陸信息的獲取。這個大家都知道也不多說了。這個過程一般會存儲后端回傳的用戶數據。其中包含用戶ID、令牌Token、以及過期時間(可以口頭約定)。
2、如果前端采用VUE、React或者其他技術,則需要在APP的全局生命周期中增加全局定時器來保持用戶的登陸狀態。
3、如果前端采用原生的html、js寫法,那么前端在請求之前需要加一個請求攔截器,判斷Token是否有效。
最重要的是無論Token是否有效,都不能讓用戶退出到登陸界面,重新輸入密碼。用戶輸密碼的操作一般是因為Token不一致的時候賬戶存在風險,才需要重新輸入。同一臺設備反復輸入密碼登陸的用戶體驗非常差。