Auth0 SDK (auth0-spa- js) Реализация React / Redux - PullRequest
0 голосов
/ 17 марта 2020

У меня возникли проблемы с определением, где хранить мой экземпляр клиента Auth0 со стеком React / Redux / Immutable JS и где разместить управление состоянием. Все примеры используют контекст / хуки.

Я думал об использовании thunk.withArugment, но проблема в том, что createAuth0Client () разрешает asyn c. У кого-нибудь есть пример реализации Auth0 SDK (auth0-spa- js) с React, Redux, Thunk, Immutable JS? Я знаю, что, вероятно, упускаю что-то простое.

Я исследовал часы этой темы c и не смог найти ответ. Я использую SDK, чтобы не хранить токен на клиенте.

Мне нужно иметь возможность получить токен перед всеми вызовами API, чтобы подтвердить, что пользователь зарегистрирован / истек срок действия.

Я изучил HO C, Redux Custom Context и до сих пор не могу понять, что такое правильная реализация.

Updated:

export const isUserAuthenticated = (): ThunkAction<Promise<void>, StoreState, void, Action> =>
  async (dispatch: Dispatch, getState: () => StoreState) => {
    const auth0Client = await AuthService.createAuthClient();
    const isAuthenticated = await AuthService.isAuthenticated();
    dispatchActionWithPayload(ActionTypeKeys.IS_AUTHENTICATED, isAuthenticated, dispatch);

    if (!isAuthenticated) {
      dispatchAction(ActionTypeKeys.LOGIN_REQUIRED, dispatch);
    }
  };
...