| import { HttpError } from "react-admin"; | 
| import { login, menus } from "../api/auth"; | 
| import { getToken, setToken, removeToken } from '@/utils/token-util'; | 
|   | 
| import avatar from '/avatar.jpg' | 
|   | 
| const AuthProvider = { | 
|   // login | 
|   login: async ({ username, password, tenantId }) => { | 
|     const { code, msg, data } = await login({ | 
|       username: username, | 
|       password: password, | 
|       tenantId: tenantId, | 
|     }) | 
|   | 
|     if (code === 200) { | 
|       const { accessToken, user, tenant } = data; | 
|       if (user && accessToken) { | 
|         const userToPersist = { | 
|           avatar: avatar, | 
|           fullName: user.nickname, | 
|           id: user.id, | 
|           username: user.username, | 
|           tenant: tenant, | 
|         } | 
|         setToken(accessToken); | 
|         localStorage.setItem("user", JSON.stringify(userToPersist)); | 
|         return Promise.resolve(); | 
|       } | 
|     } | 
|   | 
|     return Promise.reject({ code, msg, data }); | 
|   }, | 
|   // logout | 
|   logout: () => { | 
|     localStorage.removeItem("user"); | 
|     removeToken(); | 
|     return Promise.resolve(); | 
|   }, | 
|   // checkError | 
|   checkError: () => { | 
|     return Promise.resolve(); | 
|   }, | 
|   // checkAuth | 
|   checkAuth: () => { | 
|     const token = getToken(); | 
|     return token ? Promise.resolve() : Promise.reject(); | 
|   }, | 
|   // getPermissions | 
|   getPermissions: async () => { | 
|     const token = getToken(); | 
|     if (!token) { | 
|       localStorage.removeItem("user"); | 
|       if (window.location.pathname !== "/login") { | 
|       } | 
|       return Promise.reject(); | 
|     } | 
|     const res = await menus(); | 
|     const { code, msg, data } = res.data; | 
|     if (code === 200) { | 
|       return Promise.resolve(data); | 
|     } else if (code === 401) { | 
|       localStorage.removeItem("user"); | 
|       return Promise.reject(); | 
|     } else { | 
|       return Promise.reject(msg); | 
|     } | 
|   }, | 
|   // getIdentity | 
|   getIdentity: () => { | 
|     const persistedUser = localStorage.getItem("user"); | 
|     const user = persistedUser ? JSON.parse(persistedUser) : null; | 
|     return Promise.resolve(user); | 
|   }, | 
| }; | 
|   | 
| export default AuthProvider; |