Im Idealfall verfolgen Sie, ob der Benutzer angemeldet ist oder nicht, indem Sie irgendwo in Ihrer Anwendungszustandsstruktur ein sessiontoken speichern. Sie können etwas wie Redux verwenden, um den Status in Ihrer Anwendung zu verwalten. Sie müssen zuerst entscheiden, auf welche Route Sie umleiten müssen, wenn der Benutzer nicht angemeldet ist. & fordert eine Route an, die eine Authentifizierung erfordert. Nehmen wir an, Sie haben 2 Routen /Login und /Produkte. Sie möchten sicherstellen, dass nur authentifizierte Benutzer den Abschnitt/products anzeigen können. Die Art und Weise, wie Sie dies erreichen, geschieht durch Umleiten zu/login, indem der sittytoken-Wert Ihres Status überprüft wird, den Sie als Props an Ihre Products-Komponente übergeben können, die der Route/products zugeordnet ist.
Verwendung so etwas wie reagieren-Router
In der etwas Komponente Verwendung Produkte wie unten
class Products extends Component{
componentWillUpdate(nextProps, nextState, nextContext) {
let {sessiontoken}=nextProps;
if (!sessiontoken)
nextContext.router.push('/login');
}
}
Products.contextTypes = {
router: React.PropTypes.object.isRequired
}
In dem obigen Code wir den Wert von session lesen, die als Requisiten aus einem höheren geben wird Containerkomponente bestellen Falls es kein sessiontoken gibt, wird es nach/login umgeleitet. Solange Ihre APIs ein HTTP 401 bei einem ungültigen sessiontoken zurückgeben, funktioniert dies perfekt für Sie und Sie brauchen sich keine Sorgen zu machen, dass die Leute die Seitenquelle sehen können.
Ein Beispiel: https://github.com/EcutDavid/simple-reddit/blob/master/client/components/Header.js#L16 –