2017-03-26 40 views
0

所以我有一個快速的問題。我有一個登錄頁面,其中有一些社交媒體圖標用於登錄。我想要實現的是,當他們單擊按鈕並對其進行授權時,它們會被重定向到新頁面。但是,現在發生的事情是他們只是保留在/登錄頁面上。Angular2 Auth後重定向

這是我的HTML,第一個routerLink是我嘗試解決這個問題,但它只是將用戶帶回主頁,即使他們沒有完成登錄過程。

<div class="row omb_row-sm-offset-3 omb_socialButtons"> 
      <div class="col-xs-4 col-sm-2"> 
      <a [routerLink]="['/']" (click)="loginFacebook()" class="btn btn-block btn-social btn-facebook"> 
       <i class="fa fa-facebook"></i> Facebook 
      </a> 
      </div> 
      <div class="col-xs-4 col-sm-2"> 
      <a (click)="loginTwitter()" class="btn btn-block btn-social btn-twitter"> 
       <i class="fa fa-twitter"></i> Twitter 
      </a> 
      </div> 
      <div class="col-xs-4 col-sm-2"> 
      <a (click)="loginGoogle()" class="btn btn-block btn-social btn-google"> 
       <i class="fa fa-google"></i> Google 
      </a> 
      </div> 
     </div> 

這裏是他們

loginGoogle(){ 
    this.af.auth.login({ 
     provider:AuthProviders.Google, 
     method: AuthMethods.Popup 
    }); 
    } 
    loginFacebook(){ 
    this.af.auth.login({ 
     provider: AuthProviders.Facebook, 
     method: AuthMethods.Popup 
    }); 
    } 
    loginTwitter(){ 
    this.af.auth.login({ 
     provider: AuthProviders.Twitter, 
     method: AuthMethods.Popup 
    }); 
    } 

的JS/TS的代碼段的任何幫助感激。

回答

1

基於AngularFire2文檔,this.af.auth.login()返回Promise(技術上爲firebase.Promise<FirebaseAuthState>)。您需要將.then()子句添加到您的login()調用中,以處理Promise的成功解析並相應地重定向。

這裏是你如何可以將用戶重定向回登錄一個粗略的例子,假設你使用的角度Router類控制器的this.router

loginGoogle() { 
    this.af.auth.login({ 
    provider:AuthProviders.Google, 
    method: AuthMethods.Popup 
    }).then((success) => { 
    // Redirect the user back to the home page 
    this.router.navigateByUrl('/'); 
    }); 
}