Я создал проект в angular 6, который показывает аутентификацию Google, используя angular-6-social-login .Ниже приведена команда установки:
npm install --save angular-6-social-login
После этого я внес следующие изменения в файл app.module.ts :
import {SocialLoginModule,AuthServiceConfig,GoogleLoginProvider} from "angular-6-social-login";
// Configs
export function getAuthServiceConfigs() {
let config = new AuthServiceConfig(
[
{
id: GoogleLoginProvider.PROVIDER_ID,
provider: new GoogleLoginProvider("Your-Google-Client-Id")
}
];
);
return config;
}
@NgModule({
imports: [
...
SocialLoginModule
],
providers: [
...
{
provide: AuthServiceConfig,
useFactory: getAuthServiceConfigs
}
],
bootstrap: [...]
})
export class AppModule { }
И следующееизменения в app.component.ts :
import {Component, OnInit} from '@angular/core';
import {
AuthService,
GoogleLoginProvider
} from 'angular-6-social-login';
@Component({
selector: 'app-signin',
templateUrl: './signin.component.html',
styleUrls: ['./signin.component.css']
})
export class SigninComponent implements OnInit {
constructor( private socialAuthService: AuthService ) {}
public socialSignIn(socialPlatform : string) {
let socialPlatformProvider;
if(socialPlatform == "facebook"){
socialPlatformProvider = FacebookLoginProvider.PROVIDER_ID;
}else if(socialPlatform == "google"){
socialPlatformProvider = GoogleLoginProvider.PROVIDER_ID;
}else if (socialPlatform == "linkedin") {
socialPlatformProvider = LinkedinLoginProvider.PROVIDER_ID;
}
this.socialAuthService.signIn(socialPlatformProvider).then(
(userData) => {
console.log(socialPlatform+" sign in data : " , userData);
// Now sign-in with userData
// ...
}
);
}
}
Ниже приводится мой app.component.html
<button (click)="socialSignIn('google')">Sign in with Google</button>
Я запустил приложениеи работает нормально.Хотя в консоли появляется следующая ошибка:
Ошибка, отображаемая консолью при запуске приложения.В основном, когда я запускаю ng serve --open и открываю консольное окно приложения
Приложение работает нормально, то есть по нажатию кнопки, появляется окно входа в систему Google, спрашивая меня о моемучетные данные Google.Я ввожу их, и это подтверждает подлинность.
У меня 3 проблемы или, вернее, сомнения: 1) Почему появляется эта ошибка?
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'signIn'
of undefined
TypeError: Cannot read property 'signIn' of undefined
at angular-6-social-login.umd.js:250
at new ZoneAwarePromise (zone.js:891)
at GoogleLoginProvider.push../node_modules/angular-6-social-login/angular-6-
social-login.umd.js.GoogleLoginProvider.signIn (angular-6-social-
login.umd.js:249)
2) Мы экспортировали функцию getAuthServiceConfigs () и позже объявили ее в массиве Providers в app.module.ts .Какая польза от этого?
3) Мне нужно визуализировать экран входа в Google при запуске приложения, т.е. без нажатия кнопки.Как мне этого добиться?
Я пытался вызвать метод в ngOnInit ():
ngOnInit(){
this.socialSignIn('google');
}
, но на экране ничего не отображается
Пожалуйста, помогите мне с этим!