共用方式為


使用 MSAL.js 在驗證要求中傳遞自訂 state

如同 OAuth 2.0 所定義,state 參數包含在驗證要求內,所以也會在權杖回應中傳回,以抵禦跨網站偽造要求攻擊。 根據預設,適用於 JavaScript 的 Microsoft 驗證庫 (MSAL.js) 會在驗證要求中傳遞隨機產生的唯一 state 參數值。

重新導向前,參數值也可用來將應用程式狀態的資訊編碼。 您可以傳遞使用者在應用程式中的狀態,例如使用者所在的頁面或檢視,用作此參數的輸入。 MSAL.js 程式庫可讓您在 Request 物件中,將您的自訂 state 作為 state 參數傳遞。 例如:

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);

傳送要求時,傳入的 state 會附加至 MSAL.js 所設定的唯一 GUID。 傳回回應時,MSAL.js 會檢查 state 相符,並將 Response 物件中的自訂傳入 state 作為 state 傳回。

下一步

若要深入了解,請建置 React 單頁應用程式 (SPA),以在下列多部分教學課程系列中登入使用者。