封装一个AuthRoute路由拦截组件

该博客介绍了一个React组件`AuthRoute`的实现,该组件用于路由拦截。它根据用户是否有token来决定是否允许访问受保护的路由。如果用户已认证(isAuth()返回true),则正常渲染组件;否则,用户将被重定向到登录页面,并携带当前请求的路径作为登录后的返回位置。
摘要由CSDN通过智能技术生成

封装一个AuthRoute路由拦截组件,如果有token直接跳转,如果没有token 返回到登陆页面

import { Route, Redirect } from 'react-router-dom'
import { isAuth } from '../../utils'
//...剩余参数, 吧所有参数收集到一个数组或对象中,吧component单独拿出来
const AuthRoute = ({ component: Component, ...rest }) => {
  console.log({ ...rest })

  return <Route {...rest}
    render={(props) => {
      //判断是否登陆
      const auth = isAuth()
      if (auth) {
        //有token登陆成功 跳转
        //标签首字母需要大写,重命名component
        return <Component></Component>
      } else {
        //没有token没有登陆 重定向到登陆页面 并吧路由带过去
        // console.log(props.location.pathname)
        return <Redirect to={{
          pathname: '/login',
          state: { from: props.location.pathname }
        }}></Redirect>
      }
    }}
  ></Route>
}
export default AuthRoute


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值