前後端分離模式下,如何跟蹤使用者狀態?

2021-08-25 17:16:11 字數 711 閱讀 6076

在前後端分離開發模式下,前端採用vue等mvvm框架,後端負責提供restful風格的介面。區別於傳統開發模式下使用session來跟蹤使用者登入狀態,前後端分離模式可採用讀取cookie的方式來驗證使用者登入,每次使用者訪問任意url,都會對cookie進行驗證。

這種方式的好處是保證伺服器處理任意的url都是無狀態的,可以擴充套件到多台伺服器。

由於登入成功後是由伺服器生成乙個cookie傳送給瀏覽器,所以,要保證這個cookie不會被客戶端偽造出來。實現防偽造cookie的關鍵是通過乙個單向加密演算法,如sha1。

舉例如下:

當使用者輸入了正確的口令登入成功後,伺服器可以從資料庫取到使用者的id,並按照如下方式計算出乙個字串:

"使用者id" + "過期時間" + sha1("使用者id" + "使用者口令" + "過期時間" + "secretkey")
當瀏覽器傳送cookie到伺服器端後,伺服器可以拿到的資訊包括:使用者id、過期時間、sha1值。

如果未到過期時間,伺服器就根據使用者id查詢使用者口令,並計算:sha1("使用者id" + "使用者口令" + "過期時間" + "secretkey"),並與瀏覽器cookie中的雜湊進行比較,如果相等,則說明使用者已登入,否則,cookie就是偽造的。

這個演算法的關鍵在於sha1是一種單向演算法,即可以通過原始字串計算出sha1結果,但無法通過sha1結果反推出原始字串。

前後端分離下如何登入

1.1 http無狀態性 http是無狀態的,一次請求結束,連線斷開,下次伺服器再收到請求,它就不知道這個請求是哪個使用者發過來的。當然它知道是哪個客戶端位址發過來的,但是對於我們的應用來說,我們是靠使用者來管理,而不是靠客戶端。所以對我們的應用而言,它是需要有狀態管理的,以便服務端能夠準確的知道h...

tp前後端不分離原始碼 前後端分離模式踩的坑

前後端分離現在火了很多年,在實際中新技術的使用一般是先在一些大廠中採用,比如在招聘網上大廠的前端招聘node要求比較高,而在中小型廠中對node的要求只是會用webpack打包工具以及npm包管理就可以了。最近幾年傳統公司 中小型公司開始構建前後端分離模式,前後端分離的好處網上文章很多,簡單說前端可...

前後端分離模式下的登入認證授權

認證授權流程 這裡需要重寫兩個重要的過濾器 在該方法中我們執行了 usernamepasswordauthenticationtoken authenticationtoken newusernamepasswordauthenticationtoken username,token,authori...