阅读时间:1 分钟
0 字

认证提供者

认证提供者用于处理登录、登出与认证检查。

接口定义

ts
interface IAuthProvider {
  login: (params: any, manage: IManageHook) => Promise<IAuthLoginResponse>
  logout: (params?: any, manage?: IManageHook) => Promise<IAuthLogoutResponse>
  register?: (params: any, manage?: IManageHook) => Promise<IAuthLoginResponse>
  forgotPassword?: (params: any, manage?: IManageHook) => Promise<IAuthActionResponse>
  updatePassword?: (params: any, manage?: IManageHook) => Promise<IAuthActionResponse>
  check?: (params?: any, manage?: IManageHook, auth?: IUserState) => Promise<IAuthCheckResponse>
  can?: (name: string, params?: any, manage?: IManageHook, auth?: IUserState) => boolean
  onError: (error?: IDataProviderError) => Promise<IAuthErrorResponse>
}

简单认证提供者

ts
import { simpleAuthProvider } from '@duxweb/dvha-core'

const authProvider = simpleAuthProvider({
  apiPath: {
    login: '/login',
    check: '/check',
  },
  routePath: {
    login: '/login',
    index: '/',
  },
  dataProviderName: 'default',
})

配置方式

ts
const config = {
  authProvider,
}

也可以在管理端配置中覆盖:

ts
const config = {
  manages: [
    {
      name: 'admin',
      authProvider,
    },
  ],
}