回覆列表
  • 1 # 碼農波波

    這是一個我們公司的面試題。我來給你一個簡單的方案。

    前後端分離的情況下後端無法透過session來判斷使用者是否處於活躍狀態,而使用者保持登陸和登陸失效則需要前端有一個完整的方案。

    1、使用者登陸及登陸資訊的獲取。這個大家都知道也不多說了。這個過程一般會儲存後端回傳的使用者資料。其中包含使用者ID、令牌Token、以及過期時間(可以口頭約定)。

    2、如果前端採用VUE、React或者其他技術,則需要在APP的全域性生命週期中增加全域性定時器來保持使用者的登陸狀態。

    3、如果前端採用原生的html、js寫法,那麼前端在請求之前需要加一個請求攔截器,判斷Token是否有效。

    最重要的是無論Token是否有效,都不能讓使用者退出到登陸介面,重新輸入密碼。使用者輸密碼的操作一般是因為Token不一致的時候賬戶存在風險,才需要重新輸入。同一臺裝置反覆輸入密碼登陸的使用者體驗非常差。

  • 2 # 熊吉科技

    前後端分離意味著沒有session,這種情況,使用者在登入後伺服器返回一個憑據,是token呢或是其他的資料型別這都可以商量著定,之後把這個憑據存到cookie或者localstorage或者sessionsessionstorage都行。

    - 分割線 -

    您要前後端分離,離不開那幾個框架 vue react等,這些框架最基本的功能中都有http請求庫和介面路由的支援,其實判斷登陸態主要還是在http請求庫的全域性攔截器中,登入後您每一個請求的傳送都會帶上之前登陸時獲取的憑據,這個憑據在後端伺服器中一定會有一個狀態,是過期呢還是非法呢,這個也看業務,拿回來響應後發現是這類的錯誤,直接靠路由的功能重定向到登陸介面。

    - 總結 -

    歸根結底這個問題就是前後端的一個數據溝通的問題,後端給前端一個憑據,前端每次發動請求都帶上這個憑據,後端檢測憑據的有效性(具體什麼算有效,這個看您的業務),前端拿到響應正常就不說了 異常的情況下判斷是否是您預期的需要重新登入的這種錯誤,是的話,重新登入,不是的話走別的策略。基於這個簡單的模型去走,具體的安全策略還是實現細節都沒有固定的,得看業務和具體的實現了

  • 中秋節和大豐收的關聯?
  • 現在開的小轎車感覺不太夠用,想買輛8、9萬的SUV,有哪些值得推薦?