Как я могу запустить действие после входа в систему с использованием response-redux и response-aad-msal? - PullRequest
1 голос
/ 31 января 2020

Я создал приложение, в котором для реагирования на AD вход в систему используются response-redux и реагировать-aad-msal . Я могу войти и выйти без проблем, но после того, как пользователь вошел в систему, я хочу вызвать вызов API для извлечения данных из API. Я не уверен, как вызвать это действие как при ручном, так и при принудительном входе в систему с использованием компонента AzureAD и требуемого authProvider.

В данный момент я добавил вызов в свой компонент индекса в функцию componentDidMount для вызова API для получения данных, но если пользователь отсутствует на странице индекса и обновляет страницу, приложение разрывается, поскольку вызов API не запускается после завершения входа в AD.

Я не хочу чтобы вызвать вызов в моем редукторе аутентификации, который, я думаю, был бы анти-паттерном в отношении Redux и как он должен использоваться.

Как я могу подключиться к действиям "AAD_LOGIN_SUCCESS" или "AAD_INITIALIZED" так что мой вызов API всегда запускается после входа в систему и, таким образом, избегает добавления logi c в мои компоненты?

Это в основном то, что у меня есть в данный момент, и это работает, но не если вы находитесь на / some или нажмите refre sh, поскольку это не вызовет вызов API.

Приложение. js

...
<Router>
    <Header />
    <AzureAD provider={ authProvider } reduxStore={ reduxStore } forceLogin={ true }>
        <Switch>
            <Route exact path="/">
                <EnvironmentsOverview />
            </Route>
            <Route path="/some-other-page">
                <SomeOtherPage />
            </Route>
            <Route path="*">
                <NotFound />
            </Route>
        </Switch>
    </AzureAD>
</Router>
...

EnvironmentsOverv т. js

...
export class EnvironmentsOverview extends Component {
    componentDidMount() {
        this.props.getSystemsAndEnvironments();
    }

    render() {
        ...
    }
}
...
...