AnCao/web/src/components/ProtectedRoute.tsx
yanlongqi 441eb215f6 将CSS迁移到Less并添加用户认证功能
主要变更:
- 将所有CSS文件迁移到Less预处理器
- 配置Vite支持Less编译
- 使用Less变量、嵌套和父选择器优化样式代码
- 添加用户注册和登录功能
- 实现用户认证中间件和保护路由
- 新增Profile和Login页面
- 添加底部导航栏组件TabBarLayout
- 更新CLAUDE.md为中文文档

技术改进:
- Less变量统一管理主题色和间距
- CSS嵌套提高代码可读性和可维护性
- 模块化样式组织更清晰

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 23:21:38 +08:00

20 lines
415 B
TypeScript

import React from 'react'
import { Navigate } from 'react-router-dom'
interface ProtectedRouteProps {
children: React.ReactElement
}
const ProtectedRoute: React.FC<ProtectedRouteProps> = ({ children }) => {
const token = localStorage.getItem('token')
if (!token) {
// 未登录,重定向到登录页
return <Navigate to="/login" replace />
}
return children
}
export default ProtectedRoute