zu verwenden habe ich die Google-Anmeldung in einem Projekt verwendet, wo Benutzer von zwei verschiedenen modals anmelden können. Ich habe die Dokumentation erfolgreich implementiert, die in Google-Anmeldung für Websites https://developers.google.com/identity/sign-in/web/sign-in verfügbar ist. Problem: Die Anmeldung funktioniert nur für ein Modal, das zuerst initialisiert wird. Ein anderer funktioniert nicht.wie Google api aus verschiedenen Komponenten, die in Winkel 2
2
A
Antwort
1
hinzufügen Skript in app Datei index.html
<script src="https://apis.google.com/js/platform.js" async defer></script>
App Component
import {Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `
<create-account></create-account>
<signin></signin>`
})
export class AppComponent {
constructor() {}
}
Konto Komponente erstellen
import {Component} from '@angular/core';
@Component({
selector: 'create-account',
template: `<h1>{{title}} </h1>
<google-signin></google-signin>`
})
export class CreateAccountComponent {
title = "create account page";
constructor() {}
}
Anmelden Component
import {Component} from '@angular/core';
@Component({
selector: 'signin',
template: `<h1>{{title}} </h1>
<google-signin></google-signin>`
})
export class SignInComponent {
title = "signin page";
constructor() {}
}
Google Signin Komponente
import {Component, ElementRef, AfterViewInit} from '@angular/core';
declare const gapi: any;
@Component({
selector: 'google-signin',
template: '<button id="googleBtn">Google Sign-In</button>'
})
export class GoogleSigninComponent implements AfterViewInit {
private clientId:string = '409167539692-4eqnaq2jd1itl211gsgh3m2k7i02aefa.apps.googleusercontent.com';
private scope = [
'profile',
'email',
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/contacts.readonly',
'https://www.googleapis.com/auth/admin.directory.user.readonly'
].join(' ');
public auth2: any;
public googleInit() {
let that = this;
gapi.load('auth2', function() {
that.auth2 = gapi.auth2.init({
client_id: that.clientId,
cookiepolicy: 'single_host_origin',
scope: that.scope
});
that.attachSignin(that.element.nativeElement.firstChild);
});
}
public attachSignin(element) {
let that = this;
this.auth2.attachClickHandler(element, {},
function (googleUser) {
let profile = googleUser.getBasicProfile();
console.log('Token || ' + googleUser.getAuthResponse().id_token);
console.log('ID: ' + profile.getId());
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());
//YOUR CODE HERE
}, function (error) {
console.log(JSON.stringify(error, undefined, 2));
});
}
constructor(private element: ElementRef) {
console.log('ElementRef: ', this.element);
}
ngAfterViewInit() {
this.googleInit();
}
}
Ansicht Code und Test-Demo auf Plunker
Verwandte Themen
- 1. Gleiche Winkel 2 Svg Komponenten mit verschiedenen Klassen
- 2. Dagger 2 - Module aus verschiedenen Komponenten
- 3. Wie mit Komponenten durch Winkel 2 Router
- 4. Bootstrap-Komponenten in Winkel 2 verwenden
- 5. Testen mehrerer Komponenten in Winkel 2
- 6. Angular 2 Suchfilter angewendet in verschiedenen Komponenten
- 7. Typoskript Logik Problem mit Winkel 2 und Google Maps api
- 8. Wie in Winkel 2
- 9. Verbindung zu Google Cloud Endpoints aus einem Winkel 2 App
- 10. Zugriff auf eine Komponente von verschiedenen Modul in Winkel 2
- 11. Wie bekomme ich Daten von anderen Komponenten in Winkel 2?
- 12. Google Maps in Ionic + Winkel 2
- 13. wie in Winkel 2
- 14. Winkel 2 Fehler beim Anzeigen von Daten aus Web-Api
- 15. Wie JavaScript-Funktionen in einem Winkel 2-Komponenten aus einer anderen Datei verwenden
- 16. Zugriff auf Service-Eigenschaft durch mehrere Komponenten in Winkel 2?
- 17. Angular 2 wie Komponenten aus einem CDN
- 18. Angular 2 So verwenden Sie Google Maps in mehreren Komponenten
- 19. Winkel Google Maps Polylinie Koordinaten aus Datenbank
- 20. Import verschiedene Komponenten reagieren aus verschiedenen Dateien
- 21. Wie in Winkel 2 Stil
- 22. Wie wird die wechselseitige Datenbindung zwischen Komponenten in Winkel 2 verwendet?
- 23. Wie könnte ich eine system.import() in die Komponente Winkel 2
- 24. Hinzufügen von verschiedenen Vorlagen in einer Tabelle mit Winkel 2
- 25. Wie bekomme ich Werte von Google Marker in Winkel 2
- 26. Einrichtung Google Analytics-Ereignis mit Winkel 2
- 27. Winkel Google Maps API-Schlüssel nicht
- 28. Wie in Winkel 2 Karma
- 29. Ng-Gehalt nicht für herabgestuft Winkel 2-Komponenten analysiert
- 30. Wie document.body in Winkel 2