Files
taiji-pad-v0/lib/auth.ts
T
xiaohei 6c2069b878 优化代码:修复重复文件、统一认证函数、添加租户角色管理和管理员列表功能
- 删除重复文件:components/ui/use-toast.ts 和 components/ui/use-mobile.tsx
- 统一 getAuthToken() 函数,在 api-client.ts 中导入并删除重复定义
- 创建 clearAllTokens() 工具函数,统一 token 清除逻辑
- 修复 Toast 延迟时间(从 1000000ms 改为 5000ms)
- 修复 TypeScript 类型错误:在 applicationForm 中添加 providerId 字段
- 修复登录路径:使用 super_admin 角色登录超级管理员
- 移除登录前的后端可达性检查(避免浏览器环境问题)
- 在管理用户对话框中添加租户角色修改功能(租户/计费管理员/运营管理员)
- 移除管理用户对话框中的用户数字段(用户层面不应显示用户数)
- 在设置页面添加当前渠道管理员列表显示功能
- 添加获取和创建渠道管理员的 API 方法
- 更新登录方法的角色类型定义,支持所有角色类型
2025-12-28 13:43:07 +00:00

76 lines
1.9 KiB
TypeScript

// Authentication utilities
export function getAuthToken(): string | null {
if (typeof window !== "undefined") {
// 检查所有可能的token类型
const authToken = localStorage.getItem("auth_token")
const adminToken = localStorage.getItem("admin_token")
const channelToken = localStorage.getItem("channel_token")
return authToken || adminToken || channelToken
}
return null
}
export function getUser(): any | null {
if (typeof window !== "undefined") {
const userStr = localStorage.getItem("user")
if (userStr) {
try {
return JSON.parse(userStr)
} catch {
return null
}
}
}
return null
}
export function isAuthenticated(): boolean {
return getAuthToken() !== null
}
export function isAdminAuthenticated(): boolean {
if (typeof window !== "undefined") {
return localStorage.getItem("admin_token") !== null
}
return false
}
export function isChannelAuthenticated(): boolean {
if (typeof window !== "undefined") {
return localStorage.getItem("channel_token") !== null
}
return false
}
export function clearAuth(): void {
if (typeof window !== "undefined") {
localStorage.removeItem("auth_token")
localStorage.removeItem("refresh_token")
localStorage.removeItem("user")
localStorage.removeItem("api_key")
}
}
/**
* 清除所有认证相关的 token 和用户信息
* 包括 auth_token, channel_token, admin_token, refresh_token, user, api_key
*/
export function clearAllTokens(): void {
if (typeof window !== "undefined") {
localStorage.removeItem("auth_token")
localStorage.removeItem("channel_token")
localStorage.removeItem("admin_token")
localStorage.removeItem("refresh_token")
localStorage.removeItem("user")
localStorage.removeItem("api_key")
}
}
export function getRole(): string | null {
const user = getUser()
return user?.role || null
}