使用 MSAL.js 在身份验证请求中传递自定义状态

由 OAuth 2.0 定义的 state 参数包含在身份验证请求中,并在令牌响应中返回,以防止跨站点请求伪造攻击。 默认情况下,适用于 JavaScript 的 Microsoft 身份验证库 (MSAL.js) 在身份验证请求中传递随机生成的唯一 state 参数值。

state 参数也可用于在重定向之前对应用的状态信息进行编码。 可以在应用中传递用户的状态,例如他们所在的页面或视图,作为此参数的输入。 MSAL.js 库允许你在请求对象中将自定义状态作为状态参数传入。 例如:

import {PublicClientApplication} from "@azure/msal-browser";

const myMsalObj = new PublicClientApplication({
    clientId: "ENTER_CLIENT_ID_HERE"
});

let loginRequest = {
    scopes: ["https://microsoftgraph.chinacloudapi.cn/user.read"],
    state: "page_url"
}

myMSALObj.loginRedirect(loginRequest);

发送请求时,传入状态将追加到 MSAL.js 设置的唯一 GUID 中。 返回响应时,MSAL.js 会检查状态是否匹配,然后在响应对象中将自定义传入状态返回为 state

后续步骤

以在以下多部分系列教程中,通过生成能登录用户的 React 单页应用程序 (SPA) 了解详细信息。