使用 MSAL.js 在驗證要求中傳遞自定義狀態
狀態 參數,如 OAuth 2.0 所定義,包含在驗證要求中,也會在令牌回應中傳回,以防止跨網站要求偽造攻擊。 根據預設,適用於 JavaScript 的 Microsoft 驗證連結庫 (MSAL.js) 會在驗證要求中傳遞隨機產生的唯一 狀態 參數值。
狀態參數也可以用來在重新導向之前編碼應用程式狀態的資訊。 您可以在應用程式中傳遞用戶的狀態,例如其開啟的頁面或檢視,做為此參數的輸入。 MSAL.js 連結庫可讓您在 Request 對象中傳遞自定義狀態作為狀態參數。 例如:
import {PublicClientApplication} from "@azure/msal-browser";
const myMsalObj = new PublicClientApplication({
clientId: "ENTER_CLIENT_ID_HERE"
});
let loginRequest = {
scopes: ["user.read"],
state: "page_url"
}
myMSALObj.loginRedirect(loginRequest);
傳入的狀態會在傳送要求時,附加到由 MSAL.js 設定的唯一 GUID 上。 當回應被傳回時,MSAL.js 檢查狀態是否匹配,然後在 回應 物件中,傳回傳入的自定義狀態作為 state
。
後續步驟
若要深入瞭解,請建置 React 單頁應用程式 (SPA),以在下列多部分 教學課程系列中登入使用者。