@salte-auth/salte-auth
Version:
Authentication for the modern web!
80 lines (79 loc) • 2.78 kB
TypeScript
import { SalteAuthMixedIn, Constructor } from './mixins/auth';
import { Shared } from './base/core/shared';
import * as Generic from './generic';
import * as Utils from './utils';
import { IDToken, Logger } from './utils';
import { Provider } from './base/core/provider';
import { Handler } from './base/handler';
export declare class SalteAuth extends Shared {
logger: Logger;
mixin: (base: Constructor) => SalteAuthMixedIn;
constructor(config: SalteAuth.Config);
/**
* Login to the specified provider.
*
* @param options - the authentication options
*/
login(options: SalteAuth.AuthOptions): Promise<void>;
/**
* Login to the specified provider.
*
* @param provider - the provider to login with
*/
login(provider: string): Promise<void>;
/**
* Logout of the specified provider.
*
* @param options - the authentication options
*/
logout(options: SalteAuth.AuthOptions): Promise<void>;
/**
* Logout of the specified provider.
*
* @param provider - the provider to logout of
*/
logout(provider: string): Promise<void>;
/**
* Returns a provider that matches the given name.
* @param name - the name of the provider
* @returns the provider with the given name.
*/
provider(name?: string): Provider;
/**
* Returns a handler that matches the given name.
* @param name - the name of the handler
* @returns the handler with the given name, if no name is specified then the default handler.
*/
handler(name?: string): Handler;
private $secure;
}
export interface SalteAuth {
config: SalteAuth.Config;
on(name: 'login', listener: (error?: Error, data?: SalteAuth.EventWrapper) => void): void;
on(name: 'logout', listener: (error?: Error, data?: SalteAuth.EventWrapper) => void): void;
emit(name: 'login' | 'logout', error?: Error, data?: SalteAuth.EventWrapper): void;
}
export declare namespace SalteAuth {
interface Config extends Shared.Config {
providers: Provider[];
handlers: Handler[];
/**
* Determines the level of verbosity of the logs.
*
* @defaultValue 'warn'
*/
level?: ('error' | 'warn' | 'info' | 'trace');
}
interface EventWrapper {
provider: string;
data?: IDToken.UserInfo | string;
}
interface AuthOptions {
provider: string;
handler?: string;
}
}
export { SalteAuthError } from './base/core/salte-auth-error';
export { OAuth2Provider } from './base/provider-oauth2';
export { OpenIDProvider } from './base/provider-openid';
export { Provider, Handler, Utils, Generic };