UNPKG

ionic-coreo

Version:

Ionic2 module for integration with Coreo

88 lines (87 loc) 2.55 kB
/// <reference types="promise.prototype.finally" /> import { Storage } from '@ionic/storage'; import { Platform } from 'ionic-angular'; import { CoreoClient } from './client'; import { CoreoUser } from './user'; import { CoreoTokenContext, CoreoAuthToken } from './token-context'; /** * Container for the result of authentication */ export interface CoreoAuthError { status: number; msg: string; } export declare type CoreoAuthResult = CoreoAuthToken | CoreoAuthError; export declare type CoreoAuthMethod = 'basic' | 'google' | 'facebook' | 'twitter'; export interface CoreoAuthModules { basic: CoreoAuthType; google: CoreoAuthType; [key: string]: CoreoAuthType; } export interface CoreoAuthCredentials { email: string; password: string; } export interface CoreoOAuthConfig { surveyId: number; webClientId?: string; } export declare type CoreoAuthLoginOptions = CoreoAuthCredentials | CoreoOAuthConfig; export interface CoreoAuthType { login(params: CoreoAuthLoginOptions): Promise<CoreoAuthResult>; logout(): Promise<void>; } export declare class BasicAuth implements CoreoAuthType { private client; private platform; constructor(client: CoreoClient, platform: Platform); login(credentials: CoreoAuthCredentials): Promise<CoreoAuthResult>; logout(): Promise<void>; } /** * Google OAuth */ export declare class GoogleAuth implements CoreoAuthType { private client; private platform; constructor(client: CoreoClient, platform: Platform); login(config: CoreoOAuthConfig): Promise<CoreoAuthResult>; logout(): Promise<void>; } /** * Facebook OAuth */ export declare class FacebookAuth implements CoreoAuthType { private client; private platform; constructor(client: CoreoClient, platform: Platform); login(config: CoreoOAuthConfig): Promise<CoreoAuthResult>; logout(): Promise<any>; } /** * Coreo Auth Service */ export declare class CoreoAuth { private tokenContext; private client; private platform; private user; private storage; modules: CoreoAuthModules; context: CoreoAuthType; constructor(tokenContext: CoreoTokenContext, client: CoreoClient, platform: Platform, user: CoreoUser, storage: Storage); /** * Login method */ login(method: CoreoAuthMethod, params?: CoreoAuthLoginOptions): Promise<CoreoAuthResult>; /** * Logout Method */ logout(): Promise<void>; reset(): void; /** * Get Profile */ profile(): Promise<any>; } export default CoreoAuth;