- 删除重复文件: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 方法 - 更新登录方法的角色类型定义,支持所有角色类型
76 lines
1.9 KiB
TypeScript
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
|
|
}
|
|
|