You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
766 B
30 lines
766 B
import {Instantiable} from '../di'
|
|
import {ORMUserRepository} from './orm/ORMUserRepository'
|
|
import {OAuth2LoginConfig} from './external/oauth2/OAuth2LoginController'
|
|
|
|
/**
|
|
* Inferface for type-checking the AuthenticatableRepositories values.
|
|
*/
|
|
export interface AuthenticatableRepositoryMapping {
|
|
orm: Instantiable<ORMUserRepository>,
|
|
}
|
|
|
|
/**
|
|
* String mapping of AuthenticatableRepository implementations.
|
|
*/
|
|
export const AuthenticatableRepositories: AuthenticatableRepositoryMapping = {
|
|
orm: ORMUserRepository,
|
|
}
|
|
|
|
/**
|
|
* Interface for making the auth config type-safe.
|
|
*/
|
|
export interface AuthConfig {
|
|
repositories: {
|
|
session: keyof AuthenticatableRepositoryMapping,
|
|
},
|
|
sources?: {
|
|
[key: string]: OAuth2LoginConfig,
|
|
},
|
|
}
|