UNPKG

@fakel/ra-simple-auth

Version:

Simple auth provider for @fakel/rest-admin

43 lines (39 loc) 1.2 kB
import axios from 'axios'; import { AuthProviderOptions } from './types'; export const createAuthProvider = (options: AuthProviderOptions) => { axios.defaults.withCredentials = true; const APIClient = options.client || axios.create({ baseURL: options.apiBaseUrl, withCredentials: true, }); return { login: async ({ username, password }) => { localStorage.setItem('isAuth', 'true'); localStorage.setItem('user', JSON.stringify({ username, password })); }, logout: async () => { localStorage.removeItem('user'); localStorage.removeItem('isAuth'); }, checkAuth: async () => { return JSON.parse(localStorage.getItem('isAuth')); }, checkError: async (error) => { const { status } = error; if (status === 401 || status === 403) { localStorage.removeItem('token'); return Promise.reject(); } return Promise.resolve(); }, getMe: async () => { return JSON.parse(localStorage.getItem('user')); }, getPermissions: async () => { const role = localStorage.getItem('permissions'); return role ? Promise.resolve(role) : Promise.reject(); }, }; };