在前後端分離開發模式下,前端採用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...