React 路由鉴权机制是保障应用安全性的重要手段。下面将介绍如何使用 React 实现路由鉴权。

鉴权方法

  1. 登录鉴权:用户在访问受保护的路由前,必须先登录系统。
  2. 权限验证:根据用户的角色或权限,决定其是否可以访问特定路由。
  3. JWT 鉴权:使用 JSON Web Tokens(JWT)进行用户认证。

实现步骤

  1. 创建认证组件:使用 React Router 创建一个认证组件,用于拦截未认证的用户访问受保护的路由。
  2. 设置路由守卫:在路由配置中设置路由守卫,根据用户的登录状态和权限来决定是否允许访问。
  3. 使用 JWT:在用户登录时,服务器生成 JWT 并发送给客户端,客户端将其存储在本地(如 localStorage 或 cookie)。
  4. 验证 JWT:每次请求受保护的路由时,从本地获取 JWT 并发送给服务器进行验证。

示例代码

import React from 'react';
import { Route, Redirect, BrowserRouter as Router } from 'react-router-dom';

const PrivateRoute = ({ component: Component, ...rest }) => (
  <Route {...rest} render={props => (
    localStorage.getItem('token') ? (
      <Component {...props} />
    ) : (
      <Redirect to={{ pathname: '/login' }} />
    )
  )} />
);

export default () => (
  <Router>
    <div>
      <PrivateRoute path="/admin" component={AdminPage} />
      <Route path="/login" component={LoginPage} />
    </div>
  </Router>
);

React 路由鉴权示例

更多关于 React 路由鉴权的知识,请参考本站的 React 路由教程