Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 2从服务获取Google身份验证状态_Angular_Google Api_Angular2 Services_Google Authentication - Fatal编程技术网

Angular 2从服务获取Google身份验证状态

Angular 2从服务获取Google身份验证状态,angular,google-api,angular2-services,google-authentication,Angular,Google Api,Angular2 Services,Google Authentication,我正在使用Google身份验证成功登录和注销,但我的身份验证服务没有返回登录状态。我正在尝试在Auth-Guard中读取它,以确定是否应该直接进入登录页面。我得到的错误是\u googleAuth未定义(“TypeError:无法读取未定义的属性'isSignedIn') 检查代码何时初始化gapi.auth2 这是您需要检查Google auth登录状态的内容 var result = false; gapi.load('auth2', function() { //gapi.auth

我正在使用Google身份验证成功登录和注销,但我的身份验证服务没有返回登录状态。我正在尝试在Auth-Guard中读取它,以确定是否应该直接进入登录页面。我得到的错误是
\u googleAuth
未定义(“TypeError:无法读取未定义的属性'isSignedIn')


检查代码何时初始化gapi.auth2

这是您需要检查Google auth登录状态的内容

var result = false;
gapi.load('auth2', function() {
    //gapi.auth2.init(authOptions); // if you haven't initialized yet
    //get instance with client ID, must be called after gapi.auth2.init
    var googleAuthTest = gapi.auth2.getAuthInstance();
    result = googleAuthTest.isSignedIn.get();
});

显示您是如何初始化的。_googleAuth?@romac添加了它。thxit在前三行的某个地方失败了,您应该进行调试。对不起,这是离题的。你说得对。我的代码正在为登录初始化gapi.auth2,但后来我没有使用GetAuthInstance。阅读本文的人面临的一个难题是,不能对其进行两次初始化。您将得到错误“已使用不同选项初始化”
getAuthenticatedStatusAsObservable(): Observable<boolean>  {
    if(this._googleAuth){
      return Observable.of(this._googleAuth.isSignedIn.get());
    }
    else {return Observable.of(false) }
  }
}
loadAuth() {
  // attempt to SILENT authorize
  this.gapiLoad
    .load('auth2')
    .switchMap(() => this.authorize())
    .do((googleAuth: gapi.auth2.GoogleAuth) => this.saveGoogleAuth(googleAuth))
    .do((googleAuth: gapi.auth2.GoogleAuth) => this.listenToGoogleAuthSignIn(googleAuth))
    .filter((googleAuth: gapi.auth2.GoogleAuth) => this.isSignedIn())
    .filter((googleAuth: gapi.auth2.GoogleAuth) => this.hasAccessToken(googleAuth))
    .map((googleAuth: gapi.auth2.GoogleAuth) => googleAuth.currentUser.get())
    .subscribe((googleUser: gapi.auth2.GoogleUser) => {
      this.zone.run(() => this.handleSuccessLogin(googleUser));
    });
  }
var result = false;
gapi.load('auth2', function() {
    //gapi.auth2.init(authOptions); // if you haven't initialized yet
    //get instance with client ID, must be called after gapi.auth2.init
    var googleAuthTest = gapi.auth2.getAuthInstance();
    result = googleAuthTest.isSignedIn.get();
});