Maison > interface Web > js tutoriel > Comment implémenter le routage authentifié dans React Router 4 ?

Comment implémenter le routage authentifié dans React Router 4 ?

Mary-Kate Olsen
Libérer: 2024-10-22 22:57:03
original
936 Les gens l'ont consulté

How to Implement Authenticated Routing in React Router 4?

Routage authentifié dans React Router 4

Les routes authentifiées dans React Router 4 nécessitent une approche différente de celle des versions précédentes. React Router 4 ne prend plus en charge les routes imbriquées avec des composants et des accessoires enfants, ce qui rend plus difficile la mise en œuvre de routes authentifiées.

Solution : utiliser le composant de redirection

Pour implémenter des routes authentifiées. routes, vous pouvez utiliser le composant Redirect. Le composant Redirect redirige l'utilisateur vers un chemin différent en fonction d'une condition donnée.

Considérez le composant PrivateRoute suivant :

<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>
Copier après la connexion

Ce composant restitue le composant spécifié si l'utilisateur est authentifié (anthed === vrai); sinon, il redirige l'utilisateur vers la page de connexion.

Utilisation :

Maintenant, vous pouvez utiliser le composant PrivateRoute dans vos itinéraires comme ceci :

<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>
Copier après la connexion

Dans cet exemple, la PrivateRoute de la route du tableau de bord redirigera les utilisateurs non authentifiés vers la page de connexion.

Solution alternative : répartition des actions

Une autre approche, qui peut être moins souhaitable, consiste à distribuer une action dans la méthode de rendu de votre composant AuthenticatedRoute. Cela pourrait ressembler à :

<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>
Copier après la connexion

Cette approche déclenche une redirection vers la page de connexion lorsque l'utilisateur n'est pas connecté, mais elle peut sembler moins élégante que l'utilisation du composant Redirect.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal