Auf dem React Router, wie kann man eingeloggt bleiben und sogar die Seite aktualisieren?

Ich mache die Website mit React und React Router mit Redux. Viele Routen (Seiten) müssen angemeldet sein. Ich kann zum Anmelden umleiten, wenn der Benutzer nicht wie folgt angemeldet ist:

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')
);

Bitte lesen Sie den Code, den ich bei Eingabe des Hooks verwendet habe, um zur Route '/ login' umzuleiten, wenn der Benutzer nicht angemeldet ist. Die Daten für die Überprüfung des angemeldeten Benutzers befinden sich im Speicher und werden nach dem Anmelden des Benutzers aktualisiert.

Es funktioniert einwandfrei, aber das Problem ist, dass beim Aktualisieren der Seite der Speicher zurückgesetzt wird und der Benutzer nicht wieder angemeldet ist.

Ich weiß, dass dies passiert, weil der Redux-Speicher nur ein Speicher ist, sodass bei der Aktualisierung der Seite alle Daten verloren gehen.

Überprüfen Sie, ob die Serversitzung bei jeder Aktualisierung funktionieren kann, aber dies ist möglicherweise eine zu große Anforderung, sodass dies keine gute Idee ist.

Das Speichern der angemeldeten Statusdaten in localStorage könnte funktionieren. In diesem Fall sollte jedoch überprüft werden, ob alle AJAX-Aufrufe fehlschlagen, wenn die Anforderung abgelehnt wurde, weil die Sitzung abgelaufen ist oder nicht existier

ibt es eine Möglichkeit, dieses Problem klarer zu lösen? Meine Website wird viele Leute verwenden, daher möchte ich XHR-Anrufe so gering wie möglich halten.

Jeder Rat wird sehr geschätzt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage