Angular - ожидание завершения аутентификации Google
Я пытаюсь, чтобы аутентификация Google работала должным образом в Angular 4. Проблема заключается в том, что код не ожидает результатов из всплывающего окна авторизации Google, прежде чем продолжить выполнение.
Фактический вход в систему работает, он просто контролирует следующий шаг, который доставляет мне неприятности. Я попытался добавить метод "getLoginResult", который возвращает наблюдаемое, но это не помогло.
login() {
this._authService.getLoginResult()
.subscribe(results => {
if(results === true) {
// want to do something here
}
else {
// this always gets executed b/c auth window hasn't returned
}
}
}
В authService...
getLoginResult(): Observable<boolean> {
if(this.signIn()) {
return Observable.of(true);
}
else {
return Observable.of(false);
}
}
signIn() {
const signOptions: gapi.auth2.SigninOptions = {scope: SCOPES };
if (this._googleAuth) {
Observable.fromPromise(this._googleAuth.signIn(signOptions))
.subscribe((response: any) => this.handleSuccessLogin(response), error => this.handleFailedLogin(error));
}
}
Я также попытался вернуть результат из входа.
signIn(): boolean {
const signOptions: gapi.auth2.SigninOptions = {scope: SCOPES };
if (this._googleAuth) {
Observable.fromPromise(this._googleAuth.signIn(signOptions))
.subscribe(response => {
if(response === true) {
return true;
}
else {
return false;
}
});
}
else {
return false;
}
}