Поделиться через


Передача пользовательского состояния в запросах на аутентификацию с помощью MSAL.js

Параметр state, который определен в OAuth 2.0, включается в запрос на аутентификацию и возвращается в ответе с токеном, чтобы предотвратить атаки с подделкой межсайтовых запросов. По умолчанию библиотека аутентификации Майкрософт для JavaScript (MSAL.js) передает в запросах на аутентификацию случайно созданное уникальное значение параметра state.

Также параметр state можно использовать для кодирования сведений о состоянии приложения перед перенаправлением. Вы можете передать состояние пользователя в приложении, например просматриваемые им страницы или представления, в качестве входных данных для этого параметра. Библиотека 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);

Переданное состояние добавляется к уникальному идентификатору GUID, который MSAL.js задает при отправке запроса. Когда ответ возвращается, MSAL.js проверка для сопоставления состояния, а затем возвращает пользовательский переданный в состоянии в объекте Response как state.

Следующие шаги

Дополнительные сведения см. в статье о создании одностраничного приложения React, которое входит в систему пользователей в следующей серии руководств по нескольким частьм.