Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie implementiert man authentifiziertes Routing in React Router 4?

Mary-Kate Olsen
Freigeben: 2024-10-22 22:57:03
Original
859 Leute haben es durchsucht

How to Implement Authenticated Routing in React Router 4?

Authentifiziertes Routing in React Router 4

Authentifizierte Routen in React Router 4 erfordern einen anderen Ansatz als in früheren Versionen. React Router 4 unterstützt keine verschachtelten Routen mehr mit Komponenten- und untergeordneten Requisiten, was die Implementierung authentifizierter Routen schwieriger macht.

Lösung: Verwendung von Redirect Component

Um authentifizierte Routen zu implementieren Routen können Sie die Redirect-Komponente verwenden. Die Redirect-Komponente leitet den Benutzer basierend auf einer bestimmten Bedingung auf einen anderen Pfad um.

Betrachten Sie die folgende PrivateRoute-Komponente:

<code class="javascript">function PrivateRoute ({component: Component, authed, ...rest}) {
  return (
    <Route
      {...rest}
      render={(props) => authed === true
        ? <Component {...props} />
        : <Redirect to={{pathname: '/login', state: {from: props.location}}} />}
    />
  )
}</code>
Nach dem Login kopieren

Diese Komponente rendert die angegebene Komponente, wenn der Benutzer authentifiziert ist (Anthed). === wahr); Andernfalls wird der Benutzer zur Anmeldeseite weitergeleitet.

Verwendung:

Jetzt können Sie die PrivateRoute-Komponente in Ihren Routen wie folgt verwenden:

<code class="javascript"><Route path='/' exact component={Home} />
<Route path='/login' component={Login} />
<Route path='/register' component={Register} />
<PrivateRoute authed={this.state.authed} path='/dashboard' component={Dashboard} /></code>
Nach dem Login kopieren

In diesem Beispiel leitet die PrivateRoute für die Dashboard-Route nicht authentifizierte Benutzer zur Anmeldeseite weiter.

Alternative Lösung: Aktionen versenden

Ein weiterer Ansatz, der Möglicherweise ist es weniger wünschenswert, eine Aktion in der Rendermethode Ihrer AuthenticatedRoute-Komponente auszulösen. Dies könnte wie folgt aussehen:

<code class="javascript">export default class AuthenticatedRoute extends React.Component {
  render() {
    if (!this.props.isLoggedIn) {
      this.props.redirectToLogin()
      return null
    }
    return <Route {...this.props} />
  }
}</code>
Nach dem Login kopieren

Dieser Ansatz löst eine Weiterleitung zur Anmeldeseite aus, wenn der Benutzer nicht angemeldet ist, wirkt jedoch möglicherweise weniger elegant als die Verwendung der Redirect-Komponente.

Das obige ist der detaillierte Inhalt vonWie implementiert man authentifiziertes Routing in React Router 4?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!