src/providers/google-login-provider.ts
Properties |
|
Methods |
constructor(clientId: string)
|
||||||
Defined in src/providers/google-login-provider.ts:10
|
||||||
Parameters :
|
Private auth2 |
auth2:
|
Type : any
|
Defined in src/providers/google-login-provider.ts:10
|
Public isInitialize |
isInitialize:
|
Type : boolean
|
Defined in src/providers/google-login-provider.ts:7
|
Public loginProviderObj |
loginProviderObj:
|
Type : LoginProviderClass
|
Default value : new LoginProviderClass()
|
Defined in src/providers/google-login-provider.ts:9
|
Static Readonly PROVIDER_ID |
PROVIDER_ID:
|
Type : string
|
Default value : 'GOOGLE'
|
Defined in src/providers/google-login-provider.ts:8
|
isInitialize |
isInitialize:
|
Type : boolean
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:6
|
drawUser |
drawUser()
|
Defined in src/providers/google-login-provider.ts:39
|
Returns :
SocialUser
|
initialize |
initialize()
|
Defined in src/providers/google-login-provider.ts:19
|
Returns :
Promise<SocialUser>
|
signIn |
signIn()
|
Defined in src/providers/google-login-provider.ts:51
|
Returns :
Promise<SocialUser>
|
signOut |
signOut()
|
Defined in src/providers/google-login-provider.ts:60
|
Returns :
Promise<any>
|
initialize |
initialize()
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:7
|
Returns :
Promise<SocialUser>
|
loadScript | |||||||||
loadScript(obj: LoginProviderClass, onload: any)
|
|||||||||
Inherited from
BaseLoginProvider
|
|||||||||
Defined in BaseLoginProvider:11
|
|||||||||
Parameters :
Returns :
void
|
signIn |
signIn()
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:8
|
Returns :
Promise<SocialUser>
|
signOut |
signOut()
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:9
|
Returns :
Promise<any>
|
import { BaseLoginProvider } from '../entities/base-login-provider';
import { SocialUser, LoginProviderClass } from '../entities/user';
declare let gapi: any;
export class GoogleLoginProvider extends BaseLoginProvider {
public isInitialize: boolean;
public static readonly PROVIDER_ID = 'GOOGLE';
public loginProviderObj: LoginProviderClass = new LoginProviderClass();
private auth2: any;
constructor(private clientId: string) {
super();
this.loginProviderObj.id = clientId;
this.loginProviderObj.name = 'GOOGLE';
this.loginProviderObj.url = 'https://apis.google.com/js/platform.js';
}
initialize(): Promise<SocialUser> {
return new Promise((resolve, reject) => {
this.loadScript(this.loginProviderObj, () => {
gapi.load('auth2', () => {
this.isInitialize = true;
this.auth2 = gapi.auth2.init({
client_id: this.clientId,
scope: 'email'
});
this.auth2.then(() => {
if (this.auth2.isSignedIn.get()) {
resolve(this.drawUser());
}
});
});
});
});
}
drawUser(): SocialUser {
let user: SocialUser = new SocialUser();
let profile = this.auth2.currentUser.get().getBasicProfile();
let authResponseObj = this.auth2.currentUser.get().getAuthResponse(true);
user.id = profile.getId();
user.name = profile.getName();
user.email = profile.getEmail();
user.photoUrl = profile.getImageUrl();
user.token = authResponseObj.access_token;
return user;
}
signIn(): Promise<SocialUser> {
return new Promise((resolve, reject) => {
let promise = this.auth2.signIn();
promise.then(() => {
resolve(this.drawUser());
});
});
}
signOut(): Promise<any> {
return new Promise((resolve, reject) => {
this.auth2.signOut().then((err: any) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
}