41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import {AuthProvider, HttpError} from "react-admin";
|
|
import data from "./users.json";
|
|
|
|
export const authProvider: AuthProvider = {
|
|
login: ({ username, password }) => {
|
|
const user = data.users.find(
|
|
(u) => u.username === username && u.password === password,
|
|
);
|
|
|
|
if (user) {
|
|
const { password, ...userToPersist } = user;
|
|
localStorage.setItem("user", JSON.stringify(userToPersist));
|
|
return Promise.resolve();
|
|
}
|
|
|
|
return Promise.reject(
|
|
new HttpError("Invalid username or password", 401, {
|
|
message: "Invalid username or password",
|
|
}),
|
|
);
|
|
},
|
|
async logout() {
|
|
localStorage.removeItem("user");
|
|
return Promise.resolve();
|
|
},
|
|
async checkAuth() {
|
|
return localStorage.getItem("user") ? Promise.resolve() : Promise.reject();
|
|
},
|
|
async getIdentity() {
|
|
const persistedUser = localStorage.getItem("user");
|
|
const user = persistedUser ? JSON.parse(persistedUser) : null;
|
|
|
|
return Promise.resolve(user);
|
|
},
|
|
async checkError() {
|
|
return Promise.resolve();
|
|
},
|
|
async getPermissions() {
|
|
return Promise.resolve(undefined);
|
|
},
|
|
}; |