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

2021-10-10 02:48:59 字數 1705 閱讀 4071

認證授權流程

這裡需要重寫兩個重要的過濾器

在該方法中我們執行了

usernamepasswordauthenticationtoken authenticationtoken =

newusernamepasswordauthenticationtoken

(username, token, authorities)

;

而我麼在登入方法中執行的是

usernamepasswordauthenticationtoken uptoken =

newusernamepasswordauthenticationtoken

(user.

getusername()

, user.

getpassword()

);

對於這兩個方法的解釋

在使用者登入過濾器執行了這樣的**

usernamepasswordauthenticationtoken uptoken = new usernamepasswordauthenticationtoken(user.getusername(), user.getpassword());

//呼叫我們寫的userdetailservice方法進行認證

return this.authenticationmanager.authenticate(uptoken);

此時構建了usernamepasswordauthenticationtoken,交由security來認證

注意此時的構造方法是兩個引數的,我們檢視原始碼

public

usernamepasswordauthenticationtoken

(object principal, object credentials)

看this.setauthenticated(false);**此時確定了這個認證物件是未認證的。
而到了我們這個許可權過濾器中,我們使用了new usernamepasswordauthenticationtoken(username, null, authorities);

這個構造方法,我們檢視原始碼

public

usernamepasswordauthenticationtoken

(object principal, object credentials, collection<

?extends

grantedauthority

> authorities)

而此時的這個構造方法super.setauthenticated(true); 此時的這個物件被賦予了許可權,並經過了認證,

此時我們就可以將這個授權過的物件放入springsecurity的上下文中。

前後端分離下如何登入

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

前後端分離常用的認證方式

原文參考 該方式是 mvc 架構中最常用的認證方案,在前後端分離中也是可以用的。幾乎所有的 web 框架都預設整合了 session cookie 的認證方式,而且對 session cookie 方式的安全性和穩定性方面都有很成熟的處理方案。當前端 使用後端 web 框架當做 web 容器驅動時,...

前後端分離 WebAPI Vue開發 身份認證

前後端分離 webapi vue開發 遠端資料請求axios 前後端分離 webapi vue開發 跨域設定 前後端分離 webapi vue開發 身份認證 儲存使用者身份可以用cache記憶體或者redis,本文實現用的是redis。1 在登入頁或者首頁頁面開啟後,先獲取token使用者身份 獲取...