src/providers/linkedin-login-provider.ts
Properties |
|
Methods |
constructor(clientId: string)
|
||||||
Defined in src/providers/linkedin-login-provider.ts:9
|
||||||
Parameters :
|
Public isInitialize |
isInitialize:
|
Type : boolean
|
Defined in src/providers/linkedin-login-provider.ts:7
|
Public loginProviderObj |
loginProviderObj:
|
Type : LoginProviderClass
|
Default value : new LoginProviderClass()
|
Defined in src/providers/linkedin-login-provider.ts:9
|
Static Readonly PROVIDER_ID |
PROVIDER_ID:
|
Type : string
|
Default value : 'LINKEDIN'
|
Defined in src/providers/linkedin-login-provider.ts:8
|
isInitialize |
isInitialize:
|
Type : boolean
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:6
|
drawUser | ||||||
drawUser(response: LinkedInResponse)
|
||||||
Defined in src/providers/linkedin-login-provider.ts:47
|
||||||
Parameters :
Returns :
SocialUser
|
initialize |
initialize()
|
Defined in src/providers/linkedin-login-provider.ts:18
|
Returns :
Promise<SocialUser>
|
onLinkedInLoad |
onLinkedInLoad()
|
Defined in src/providers/linkedin-login-provider.ts:41
|
Returns :
void
|
signIn |
signIn()
|
Defined in src/providers/linkedin-login-provider.ts:57
|
Returns :
Promise<SocialUser>
|
signOut |
signOut()
|
Defined in src/providers/linkedin-login-provider.ts:67
|
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, LinkedInResponse } from '../entities/user';
declare let IN: any;
export class LinkedinLoginProvider extends BaseLoginProvider {
public isInitialize: boolean;
public static readonly PROVIDER_ID = 'LINKEDIN';
public loginProviderObj: LoginProviderClass = new LoginProviderClass();
constructor(private clientId: string) {
super();
this.loginProviderObj.id = clientId;
this.loginProviderObj.name = 'LINKEDIN';
this.loginProviderObj.url = 'https://platform.linkedin.com/in.js';
}
initialize(): Promise<SocialUser> {
return new Promise((resolve, reject) => {
this.loadScript(this.loginProviderObj, () => {
IN.init({
api_key: this.clientId,
authorize: true,
onLoad: this.onLinkedInLoad()
});
this.isInitialize = true;
IN.Event.on(IN, 'auth', () => {
if (IN.User.isAuthorized()) {
IN.API.Raw(
'/people/~:(id,first-name,last-name,email-address,picture-url)'
).result((res: LinkedInResponse) => {
resolve(this.drawUser(res));
});
}
});
});
});
}
onLinkedInLoad() {
IN.Event.on(IN, 'systemReady', () => {
IN.User.refresh();
});
}
drawUser(response: LinkedInResponse): SocialUser {
let user: SocialUser = new SocialUser();
user.id = response.emailAddress;
user.name = response.firstName + ' ' + response.lastName;
user.email = response.emailAddress;
user.photoUrl = response.pictureUrl;
user.token = IN.ENV.auth.oauth_token;
return user;
}
signIn(): Promise<SocialUser> {
return new Promise((resolve, reject) => {
IN.User.authorize(() => {
IN.API.Raw('/people/~:(id,first-name,last-name,email-address,picture-url)').result((res: LinkedInResponse) => {
resolve(this.drawUser(res));
});
});
});
}
signOut(): Promise<any> {
return new Promise((resolve, reject) => {
IN.User.logout((response: any) => {
resolve();
}, (err: any) => {
reject(err);
});
});
}
}