Какой метод жизненного цикла использовать для потока аутентификации? - PullRequest
1 голос
/ 30 апреля 2020

Я создаю простое приложение реагирования с аутентификационным потоком и навигацией с реактивным маршрутизатором dom. Поток аутентификации, который я пытаюсь создать, заключается в том, что, когда пользователь аутентифицирован, он перенаправляет на путь / dashboard, а не на /login.

. Для аутентификации я использую API-интерфейс узла со стратегией паспорта Google OAuth 2 , У меня есть избыточное действие, которое отправляет запрос на мой сервер, а затем я отправляю его на редуктор.

Я успешно получаю информацию о пользователе, но проблема здесь.

При запуске приложения отрисовка непосредственно маршрутизатор, и в настоящее время у нее нет информации о пользователе, поэтому мы не перенаправляем на панель инструментов, но после действия, вызываемого приложением, есть информация о пользователе, но не выполняется повторная визуализация страницы

здесь мой код

AppRouter. js

const AppRouter = ({fetchUser,auth}) => {

useEffect(() => {
    fetchUser();
}, []);

console.log("App Router Signed in " ,auth);

    return (
        <BrowserRouter>
            <Route exact path="/" render={() => <Redirect to={auth ? '/dashboard' : '/login'}/>}/>
            <Switch>
                <Route exact path="/login" component={Login} />
                <PrivateRoute exact path="/dashboard" ><DashboardLayout/></PrivateRoute>
            </Switch>
        </BrowserRouter>
    )


};

function mapStateToProps({ auth }) {
    return { auth };
}
const mapDispatchToProps = dispatch => ({
    fetchUser: () => dispatch(fetchUser())
});
export default connect(mapStateToProps, mapDispatchToProps)(AppRouter);

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

class App extends Component {
render() {
return (
    <Provider store={store}>
        <AppRouter/>
    </Provider>
);
  }
}
export default App;

Вы также можете посмотреть на моей консоли Google вы увидите Сначала я получаю auth = null, но после того, как auth равен моему пользовательскому объекту

Может быть, мне нужно использовать другие методы LifeCycle?

Google Console

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