No React Router, como permanecer logado até atualiza a página?

Estou criando o site com o React e o React Router com o Redux. Muitas rotas (páginas) requerem login. Eu posso redirecionar para o login se o usuário não estiver logado da seguinte maneira:

function requireAuth(nextState, replace) {
    let loggedIn = store.getState().AppReducer.UserReducer.loggedIn;

    if(!loggedIn) {
        replace({
            pathname: '/login',
            state: {
                nextpathname: nextState.location.pathname
            }
        });
    }
}

ReactDOM.render(
    <Provider store={store}>
        <Router history={history}>
            <Route path="/" component={App}>
                <IndexRoute component={Index} />
                <Route path="login" component={Login} />
                <Route path="register" component={Register} />
                <Route path="dashboard" component={Graph} onEnter={requireAuth}>
                    ... some other route requires logged in ...
                </Route>
            </Route>
        </Router>
    </Provider>,
    document.getElementById('entry')
);

Por favor, veja o código que usei no ganchoEnter para redirecionar para a rota '/ login' se o usuário não estiver conectado. Os dados para verificar o login do usuário estão na loja e serão atualizados após o login do usuário.

Está funcionando perfeitamente, mas o problema é quando atualizo a página, a loja será redefinida e o usuário não está logado novamente.

Eu sei que isso acontece porque o armazenamento Redux é apenas armazenamento de memória, portanto, a página de atualização perderá todos os dados.

Verifique se a sessão do servidor em cada atualização pode funcionar, mas isso pode ser uma solicitação excessiva, para que pareça uma má ideia.

Salvar os dados do estado conectado no localStorage pode funcionar, mas, neste caso, eu devo verificar se todas as chamadas AJAX falham na solicitação rejeitada porque a sessão expirou ou não existe como algo, e também parece uma má ideia.

Existe uma maneira de resolver esse problema mais claramente? Meu site vai usar muitas pessoas, então eu quero reduzir as chamadas XHR quanto possível.

Qualquer conselho será muito apreciado.

questionAnswers(2)

yourAnswerToTheQuestion