WhiteNightsAdminPanel/src/authProvider.ts

60 lines
1.2 KiB
TypeScript

import type {AuthProvider} from '@refinedev/core'
export const TOKEN_KEY = 'refine-auth'
export const authProvider: AuthProvider = {
login: async ({username, email, password}) => {
if ((username || email) && password) {
localStorage.setItem(TOKEN_KEY, username)
return {
success: true,
redirectTo: '/',
}
}
return {
success: false,
error: {
name: 'LoginError',
message: 'Invalid username or password',
},
}
},
logout: async () => {
localStorage.removeItem(TOKEN_KEY)
return {
success: true,
redirectTo: '/login',
}
},
check: async () => {
const token = localStorage.getItem(TOKEN_KEY)
if (token) {
return {
authenticated: true,
}
}
return {
authenticated: false,
redirectTo: '/login',
}
},
getPermissions: async () => null,
getIdentity: async () => {
const token = localStorage.getItem(TOKEN_KEY)
if (token) {
return {
id: 1,
name: 'John Doe',
avatar: 'https://i.pravatar.cc/300',
}
}
return null
},
onError: async (error) => {
console.error(error)
return {error}
},
}