javascript swift登入 刷新後如何讓用戶登錄到Firebase應用程序?




swift登入 (2)

如果您正在使用Angular 4,則可以使用AngularFire2 - 官方Firebase集成。

我有一個包裝AngularFire2的AuthService。 我只是在服務的構造函數中檢索AuthSession,並在需要時使用。 例:

@Injectable()
export class AuthenticationService {

    private authState: any;

    constructor(public afAuth: AngularFireAuth) {
        this.afAuth.authState.subscribe((auth) => {
          this.authState = auth
        });
    }

    get user(): any {
        return this.authenticated ? this.authState : null;
    }
}

完整的身份驗證服務代碼在這裡完整的角色4與Firebase的例子

我有一個應用程序構建在firebase和角度,並希望能夠保持刷新頁面後,用戶登錄。 現在我有一個登錄屏幕有兩個基本輸入字段綁定到一個控制器

    this.email = "";
    this.pass = "";
    this.emessage = "";

    this.loginUser = function() {
        ref.authWithPassword({
            email: this.email,
            password: this.pass
        }, function(error, authData) {
            if (error) {
                console.log("Login Failed!", error);
                this.emessage = error.message;
                $scope.$apply();
            } else {
                dataStorage.uid = authData.uid;
                $location.path('/projects');
                $scope.$apply(); 
            }
        }.bind(this));
    }

這一切都很好,並且很有用,但是當用戶刷新頁面時,他們會被註銷。 有什麼辦法,當控制器加載,看看用戶是否已經登錄和自動重定向? 謝謝!


您現在的代碼處理用戶登錄的情況。 要處理用戶已經登錄的情況,您需要監視auth狀態。 從關於監視身份驗證狀態Firebase文檔

// Create a callback which logs the current auth state
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.onAuth(function(authData) {
  if (authData) {
    console.log("User " + authData.uid + " is logged in with " + authData.provider);
  } else {
    console.log("User is logged out");
  }
});

通常你只想在這個函數的else部分顯示登錄按鈕。







firebase