Angularfire2 ng5.0 身份验证在登录后立即退出

Posted

技术标签:

【中文标题】Angularfire2 ng5.0 身份验证在登录后立即退出【英文标题】:Angularfire2 ng5.0 authentication signing out immediately after sign in 【发布时间】:2018-09-17 08:02:48 【问题描述】:

我正在尝试将我的 Angular/Firebase 应用程序从 Angular 4 迁移到 5。使用 AngularFire.auth 登录后几乎立即,用户再次注销。通过订阅afAuth.auth.onAuthStateChanged(),我确信这是一个注销操作。有没有人经历过类似的?还是我只是以某种方式搞砸了我的身份验证?

提前致谢

角度@5.0.0 Angularfire2 @ 5.0.0-rc.6

这是一个示例登录功能:

googleLogin() 
this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider()).then(result => 

  this.updateUser(result);

  this.router.navigate(['dashboard']);

).catch(result => 
  this.toastr.error(result.message);
);

this.updateUser() 更新 firebase 实时数据库中的用户对象。我试过在没有它的情况下运行,它仍然会注销用户。

并访问已登录的用户:

public getAuthedUser(): Observable<User> 

return Observable.create(observer => 
  this.afAuth.authState.subscribe( authedUser => 
    if (authedUser) 
      this.db.object<User>(DB_PATH_USER + '/' + authedUser.uid).valueChanges().subscribe(u => 
        observer.next(u);
      );
     else 
      observer.next(null);
    
  );
);

【问题讨论】:

您找到解决方案了吗?我也遇到了这个问题... 【参考方案1】:

我通过将 Angularfire2 项目升级到

解决了这个问题
"@angular/fire": "5.1.0"

【讨论】:

以上是关于Angularfire2 ng5.0 身份验证在登录后立即退出的主要内容,如果未能解决你的问题,请参考以下文章

Google 身份验证不适用于 AngularFire2

AngularFire2在Typescript中获取经过身份验证的用户ID

AngularFire 2 authState 在页面刷新时返回 null

如何在 AngularFire2 中获取当前用户的访问令牌?

用于 Azure 移动服务 (REST) 的 Live Connect 身份验证令牌

AngularFire2:通过多个浏览器选项卡通知注销