首页 文章

登录后Angularfire2重定向

提问于
浏览
2

我正在使用离子2 rc0和角度2,我只是添加了angularfire2来使用firebse auth .

我已经完成所有配置和测试(我只是看到我的用户登录了firebase控制台)但我想在登录后重定向到其他页面 .

我的登录代码:

registerUserWithGoogle() {
   console.log('Google');
   this.af.auth.login();
}

我的firebase配置是:

export const myFirebaseAuthConfig = {
   provider: AuthProviders.Google,
   method: AuthMethods.Redirect
};

所以有一种方法可以在方法login()之后重定向?

2 回答

  • 4

    AngularFire2在 AngularFireAuth 中有一个名为 authState 的属性,您可以订阅该属性以获取身份验证状态更改

    这是处理用户身份验证的推荐方法,因为您将订阅身份验证状态的更改,其他方法可能无法按预期工作,例如当用户刷新页面时,用户对象可能不存在 .

    import { AngularFireAuth } from 'angularfire2/auth';
    
    @Component({
      templateUrl: 'app.html'
    })
    export class AppComponent {
    
      constructor(public afAuth: AngularFireAuth) {}
    
      ngOnInit() {
        this.afAuth.authState.subscribe(user => {
          if (user) {
            // go to home page
          } else {
            // go to login page
          }
        });
      }
    
    }
    

    Note: 您无需在每个页面上订阅 . 仅订阅 AppComponent 或您的应用特定根组件 .

  • 0

    我发现这在我的情况下工作得更好 .

    loginGoogle(){
      this.af.auth.login({
        provider: AuthProviders.Google
      }).then((success) => {
        this.router.navigate(['/dashboard']);
      });
    }
    

相关问题