使用 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)。