Wie verwalte ich die Authentifizierung in React Router 4?
Oct 22, 2024 pm 11:08 PMAuthentifizierung in React Router 4 verwalten
In React Router Version 4 erfordert die Implementierung authentifizierter Routen einen anderen Ansatz als in früheren Versionen.
Ursprünglicher Ansatz
Früher konnten Sie mehrere Routenkomponenten mit Kindern verwenden, aber davon wird jetzt abgeraten.
<Route exact path="/&quot; component={Index} /> <Route path="/auth" component={UnauthenticatedWrapper}> <Route path="/auth/login" component={LoginBotBot} /> </Route> <Route path="/domains" component={AuthenticatedWrapper}> <Route exact path="/domains" component={DomainsIndex} /> </Route>
Richtig Implementierung
Um authentifizierte Routen zu implementieren, besteht eine Möglichkeit darin, eine benutzerdefinierte Komponente zu verwenden, die Route erweitert und vor dem Rendern der Komponente auf Authentifizierung prüft.
import React, {PropTypes} from "react"; import {Route} from "react-router-dom"; export default class AuthenticatedRoute extends React.Component { render() { if (!this.props.isLoggedIn) { this.props.redirectToLogin() return null } return <Route {...this.props} /> } } AuthenticatedRoute.propTypes = { isLoggedIn: PropTypes.bool.isRequired, component: PropTypes.element, redirectToLogin: PropTypes.func.isRequired }
Alternativer Ansatz
Ein anderer Ansatz ist die Verwendung der Redirect-Komponente, mit der Sie Benutzer basierend auf einer authentifizierten Eigenschaft umleiten können.
function PrivateRoute ({component: Component, authed, ...rest}) { return ( <Route {...rest} render={(props) => authed === true ? <Component {...props} /> : <Redirect to={{pathname: '/login', state: {from: props.location}}} />} /> ) }
Sie können dann die PrivateRoute-Komponente in Ihren Routen verwenden:
<Route path='/' exact component={Home} /> <Route path='/login' component={Login} /> <Route path='/register' component={Register} /> <PrivateRoute authed={this.state.authed} path='/dashboard' component={Dashboard} />
Das obige ist der detaillierte Inhalt vonWie verwalte ich die Authentifizierung in React Router 4?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Ersetzen Sie Stringzeichen in JavaScript

JQuery überprüfen, ob das Datum gültig ist

JQuery fügen Sie Scrollbar zu Div hinzu

10 AJAX/JQuery AutoComplete Tutorials/Plugins
