прореагировать-очистить местное хранилище. прохождение состояния вокруг - PullRequest
1 голос
/ 19 февраля 2020

Итак, я бился в стену последние 2 дня. Я почти два года не баловался с работой в режиме ract / front end, поэтому, пожалуйста, потерпите меня.

Сценарий:
- загрузить страницу
- выбросить вещи в localalstorage (параметры строки запроса)
- перейдите на страницу авторизации входа (для этого используйте response-aad-msal)
- вернитесь на главную страницу
- попытайтесь получить данные из локального хранилища, а добавленные мной ключи отсутствуют. Есть токены msal et et c.

Окружение:
- Chrome
- Реагирует плагин для отладки

Неожиданный поворот: это происходит случайным образом. Для большей части вчера это работало. и чем ключи, которые я добавил, начали go Awol. То же самое сегодня утром.

Насколько я понимаю - если я помещаю что-то в локальное хранилище, оно остается там, пока не будет запрошено удаление, программным или иным способом.

Так что здесь происходит?

1 Ответ

0 голосов
/ 19 февраля 2020

Хорошо, думаю, я понял. Это должно быть поведение msal - будь то реакции-aad-msal или фактического msal. js это оборачивается. В любом случае, решением оказалось передать строку запроса в параметре состояния на AuthenticationParameters при создании провайдера, исключающего проблему с локальным хранилищем.

Я просто передаю строку запроса от компонента:

<AzureAD
 provider={authProviderWithState(this.props.queryString)}
 reduxStore={this.props.reduxStore}
 forceLogin={false}>

Который затем наклеивается поверх значений по умолчанию

export const authProviderWithState = (state) => {
    whichAuthParams.state = state;
    return new MsalAuthProvider(whichConfig, whichAuthParams, LoginType.Redirect);
};

Состояние просто добавляется к URL-адресу обратного вызова, используемому конечной точкой авторизации, поэтому оно работает так, как мне нужно.

...