2

電子メールとパスワード認証を使用して、angularJS アプリで firebase を使用しています。アプリを Firebase 2.x から 3.x に、AngularFire を 1.x から 2.x に更新しただけです。

移行を行うために、次の 2 つのドキュメントに従いました。

しかし今、ページを更新するたびに、永続的なセッションがないように再認証する必要があります。

firebase:authUser過去に持っていた localStorage キーを確認しましexpirationTimeた (実際には、ログインのタイムスタンプが設定されています)。

ユーザーがログインしているかどうかを確認するには、次を使用します。$firebaseAuth().$getAuth()

編集

これが私の問題の実例です(ログイン:toto@mail.fr / パスワード:toto123https://plnkr.co/edit/463Hse?p=preview

この動作の理由を知っている人はいますか?

4

1 に答える 1

3

初期認証状態が解決するのを待たずに currentUser を直接チェックしていると思います。オブザーバーを追加する必要があります。

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

https://firebase.google.com/docs/auth/web/manage-users

また、認証状態は Web ストレージに保存されるため、有効になっていることを確認してください。(状態は、たとえばサファリ プライベート モードのブラウジングでは持続しません)。

于 2016-08-12T00:23:19.487 に答える