ionic-coreo
Version:
Ionic2 module for integration with Coreo
88 lines (87 loc) • 2.55 kB
TypeScript
/// <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;