@@ -10,35 +10,6 @@ import { TokenService } from '@abp/auth/token.service';
1010import { UtilsService } from '@abp/utils/utils.service' ;
1111
1212import * as _ from 'lodash' ;
13- declare const FB : any ; //Facebook API
14- declare const gapi : any ; //Facebook API
15-
16- export class ExternalLoginProvider extends ExternalLoginProviderInfoModel {
17-
18- static readonly FACEBOOK : string = 'Facebook' ;
19- static readonly GOOGLE : string = 'Google' ;
20-
21- icon : string ;
22- initialized = false ;
23-
24- constructor ( providerInfo : ExternalLoginProviderInfoModel ) {
25- super ( ) ;
26-
27- this . name = providerInfo . name ;
28- this . clientId = providerInfo . clientId ;
29- this . icon = ExternalLoginProvider . getSocialIcon ( this . name ) ;
30- }
31-
32- private static getSocialIcon ( providerName : string ) : string {
33- providerName = providerName . toLowerCase ( ) ;
34-
35- if ( providerName === 'google' ) {
36- providerName = 'googleplus' ;
37- }
38-
39- return providerName ;
40- }
41- }
4213
4314@Injectable ( )
4415export class LoginService {
@@ -48,8 +19,6 @@ export class LoginService {
4819 authenticateModel : AuthenticateModel ;
4920 authenticateResult : AuthenticateResultModel ;
5021
51- externalLoginProviders : ExternalLoginProvider [ ] = [ ] ;
52-
5322 rememberMe : boolean ;
5423
5524 constructor (
@@ -74,20 +43,6 @@ export class LoginService {
7443 } ) ;
7544 }
7645
77- externalAuthenticate ( provider : ExternalLoginProvider ) : void {
78- this . ensureExternalLoginProviderInitialized ( provider , ( ) => {
79- if ( provider . name === ExternalLoginProvider . FACEBOOK ) {
80- FB . login ( ) ;
81- } else if ( provider . name === ExternalLoginProvider . GOOGLE ) {
82- gapi . auth2 . getAuthInstance ( ) . signIn ( ) ;
83- }
84- } ) ;
85- }
86-
87- init ( ) : void {
88- this . initExternalLoginProviders ( ) ;
89- }
90-
9146 private processAuthenticateResult ( authenticateResult : AuthenticateResultModel ) {
9247 this . authenticateResult = authenticateResult ;
9348
@@ -133,89 +88,4 @@ export class LoginService {
13388 this . authenticateResult = null ;
13489 this . rememberMe = false ;
13590 }
136-
137- private initExternalLoginProviders ( ) {
138- this . _tokenAuthService
139- . getExternalAuthenticationProviders ( )
140- . subscribe ( ( providers : ExternalLoginProviderInfoModel [ ] ) => {
141- this . externalLoginProviders = _ . map ( providers , p => new ExternalLoginProvider ( p ) ) ;
142- } ) ;
143- }
144-
145- ensureExternalLoginProviderInitialized ( loginProvider : ExternalLoginProvider , callback : ( ) => void ) {
146- if ( loginProvider . initialized ) {
147- callback ( ) ;
148- return ;
149- }
150-
151- if ( loginProvider . name === ExternalLoginProvider . FACEBOOK ) {
152- jQuery . getScript ( '//connect.facebook.net/en_US/sdk.js' , ( ) => {
153- FB . init ( {
154- appId : loginProvider . clientId ,
155- cookie : false ,
156- xfbml : true ,
157- version : 'v2.5'
158- } ) ;
159-
160- FB . getLoginStatus ( response => {
161- this . facebookLoginStatusChangeCallback ( response ) ;
162- } ) ;
163-
164- callback ( ) ;
165- } ) ;
166- } else if ( loginProvider . name === ExternalLoginProvider . GOOGLE ) {
167- jQuery . getScript ( 'https://apis.google.com/js/api.js' , ( ) => {
168- gapi . load ( 'client:auth2' ,
169- ( ) => {
170- gapi . client . init ( {
171- clientId : loginProvider . clientId ,
172- scope : 'openid profile email'
173- } ) . then ( ( ) => {
174- gapi . auth2 . getAuthInstance ( ) . isSignedIn . listen ( ( isSignedIn ) => {
175- this . googleLoginStatusChangeCallback ( isSignedIn ) ;
176- } ) ;
177- this . googleLoginStatusChangeCallback ( gapi . auth2 . getAuthInstance ( ) . isSignedIn . get ( ) ) ;
178- } ) ;
179-
180- callback ( ) ;
181- } ) ;
182- } ) ;
183- }
184- }
185-
186- private facebookLoginStatusChangeCallback ( resp ) {
187- if ( resp . status === 'connected' ) {
188- var model = new ExternalAuthenticateModel ( ) ;
189- model . authProvider = ExternalLoginProvider . FACEBOOK ;
190- model . providerAccessCode = resp . authResponse . accessToken ;
191- model . providerKey = resp . authResponse . userID ;
192- this . _tokenAuthService . externalAuthenticate ( model )
193- . subscribe ( ( result : ExternalAuthenticateResultModel ) => {
194- if ( result . waitingForActivation ) {
195- this . _messageService . info ( 'You have successfully registered. Waiting for activation!' ) ;
196- return ;
197- }
198-
199- this . login ( result . accessToken , result . encryptedAccessToken , result . expireInSeconds ) ;
200- } ) ;
201- }
202- }
203-
204- private googleLoginStatusChangeCallback ( isSignedIn ) {
205- if ( isSignedIn ) {
206- var model = new ExternalAuthenticateModel ( ) ;
207- model . authProvider = ExternalLoginProvider . GOOGLE ;
208- model . providerAccessCode = gapi . auth2 . getAuthInstance ( ) . currentUser . get ( ) . getAuthResponse ( ) . access_token ;
209- model . providerKey = gapi . auth2 . getAuthInstance ( ) . currentUser . get ( ) . getBasicProfile ( ) . getId ( ) ;
210- this . _tokenAuthService . externalAuthenticate ( model )
211- . subscribe ( ( result : ExternalAuthenticateResultModel ) => {
212- if ( result . waitingForActivation ) {
213- this . _messageService . info ( 'You have successfully registered. Waiting for activation!' ) ;
214- return ;
215- }
216-
217- this . login ( result . accessToken , result . encryptedAccessToken , result . expireInSeconds ) ;
218- } ) ;
219- }
220- }
22191}
0 commit comments