React 守卫路由

1.在components文件夹下新建一个Auth.js的文件,里面写入判断token的逻辑:

javascript 复制代码
// 导入重定向的路由模块
import { Navigate } from "react-router-dom"
// 获取本地token
let token = window.sessionStorage.getItem('token')
function Auth({children}){    
//如果token存在返回内容
if(token){       
 return <>{children}</>    
 }else{      
  return <Navigate to="/Login" replace></Navigate>  
  }
}
export {Auth}

2.在App.js里导入并使用:

javascript 复制代码
// 导入路由鉴权组件
import {Auth} from './components/Auth'

3.需要鉴权的路由组件用Auth组件包裹,那么这个路由在没有token的情况下就会强制跳转到登录:

javascript 复制代码
<Route path='/'element={ <Auth><Home/></Auth> }></Route)
相关推荐
学习3人组6 小时前
React JSX 语法讲解
前端·react.js·前端框架
EndingCoder8 小时前
Electron 安全性最佳实践:防范常见漏洞
前端·javascript·electron·前端框架·node.js·桌面端
lypzcgf20 小时前
Coze源码分析-资源库-删除插件-前端源码-核心组件实现
前端·typescript·前端框架·react·coze·coze插件·智能体平台
EndingCoder1 天前
Electron 性能优化:内存管理和渲染效率
javascript·性能优化·electron·前端框架
OEC小胖胖1 天前
页面间的导航:`<Link>` 组件和 `useRouter`
前端·前端框架·web·next.js
kk不中嘞1 天前
浅谈前端框架
前端·vue.js·react.js·前端框架
小菜全1 天前
使用UniApp实现下拉框和表格组件页面
开发语言·前端·javascript·elementui·前端框架·html
EndingCoder1 天前
单元测试:Jest 与 Electron 的结合
javascript·electron·单元测试·前端框架
醉方休2 天前
React中使用DDD(领域驱动设计)
前端·react.js·前端框架