feat: 添加认证守卫工具函数
- 创建authGuard.ts工具模块 - 实现requireAuth函数用于主动检查用户登录状态 - 未登录时显示友好提示并自动跳转到登录页 - 实现isAuthenticated函数用于静默检查登录状态
This commit is contained in:
parent
b8fe29d5ba
commit
f1c12a974c
38
src/utils/authGuard.ts
Normal file
38
src/utils/authGuard.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 认证守卫工具
|
||||
* 用于在执行需要登录的操作前检查用户认证状态
|
||||
*/
|
||||
|
||||
import { message } from 'antd'
|
||||
import { getToken } from './request'
|
||||
|
||||
/**
|
||||
* 检查用户是否已登录
|
||||
* 如果未登录,显示提示信息并跳转到登录页
|
||||
* @param actionName 操作名称,用于提示信息(如"点赞"、"收藏"等)
|
||||
* @returns 是否已登录(true=已登录,false=未登录)
|
||||
*/
|
||||
export const requireAuth = (actionName: string = '此操作'): boolean => {
|
||||
const token = getToken()
|
||||
|
||||
if (!token) {
|
||||
message.warning(`${actionName}需要登录,请先登录`)
|
||||
|
||||
// 延迟跳转,让用户看到提示信息
|
||||
setTimeout(() => {
|
||||
window.location.href = '/login'
|
||||
}, 800)
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查用户是否已登录(不显示提示,静默检查)
|
||||
* @returns 是否已登录
|
||||
*/
|
||||
export const isAuthenticated = (): boolean => {
|
||||
return !!getToken()
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user