|  |  |  | 
|---|
|  |  |  | const AuthProvider = { | 
|---|
|  |  |  | // login | 
|---|
|  |  |  | login: async ({ username, password, tenantId }) => { | 
|---|
|  |  |  | const { accessToken, user } = await login({ | 
|---|
|  |  |  | const { code, msg, data } = await login({ | 
|---|
|  |  |  | username: username, | 
|---|
|  |  |  | password: password, | 
|---|
|  |  |  | tenantId: tenantId, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (user && accessToken) { | 
|---|
|  |  |  | const userToPersist = { | 
|---|
|  |  |  | avatar: avatar, | 
|---|
|  |  |  | fullName: user.nickname, | 
|---|
|  |  |  | id: user.id, | 
|---|
|  |  |  | username: user.username | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | setToken(accessToken); | 
|---|
|  |  |  | localStorage.setItem("user", JSON.stringify(userToPersist)); | 
|---|
|  |  |  | return Promise.resolve(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return Promise.reject( | 
|---|
|  |  |  | new HttpError("Unauthorized", 401, { | 
|---|
|  |  |  | message: "Invalid username or password", | 
|---|
|  |  |  | }), | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return Promise.reject({ code, msg, data }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // logout | 
|---|
|  |  |  | logout: () => { | 
|---|