2016-06-01 5 views
5

firebase 3.0でセッション永続性を使用することは不可能です。Firebase 3.0セッション持続性

これは以前のバージョンで可能であった: https://www.firebase.com/docs/web/guide/login/password.html

authWithPassword()は、以下の設定のいずれかを含む 対象である任意の第三パラメータを取る:

覚え - ストリング
ない場合アプリケーションダッシュボードの[ログイン&認証]タブ で設定している限り、指定されたセッションまたはデフォルトに設定されているセッションは、 です。持続性を現在のウィンドウの寿命に制限するには、これをsessionOnlyに設定します。 noneの値を指定すると、 は認証データを永続的に保持せず、ページが閉じられるとすぐに認証が終了します( )。 https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithEmailAndPassword

signInWithEmailAndPassword(電子メール、パスワード)
リターンがfirebase.Promise 含むnull以外のfirebase.User

:バージョン3.0では

は、オプションの3番目のパラメータの言及はありません

また、新しいコンソール(https://console.firebase.google.com/)では、デフォルトの永続性を変更するオプションが見つかりません。

答えて

3

3.0では、signOut()が呼び出される(またはユーザーがローカルストレージをクリアする)まで、ユーザーは現在常に永続化されています。

+0

この動作は変更できますか?ユーザーが自分のセッションを覚えている場合を除いて、sessionOnlyを使用したい... 共有コンピュータで使用されるセキュリティ上重要なアプリケーションについては、セッションを自動的に永続化することはお勧めできません。 ...セッションが終了したとき(ブラウザが終了したとき)にsignOut()を呼び出すにはどうすればよいですか?私はこれが可能だとは思わない... – WSas

+1

現在web上のsessionOnlyはサポートされていませんが、今後サポートすることに強い関心があります。 – bojeil

5

認証状態が解決するのを待つ必要があることに言及する価値があります。ドキュメントごと:

現在のユーザーを取得するための推奨方法は、認証オブジェクトのオブザーバを設定することである。ここでドキュメントへ

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

1

Firebase認証JS SDKはsessionOnly永続性をサポートするようになりました。詳細については、https://firebase.google.com/support/release-notes/js#4.2.0https://firebase.google.com/docs/auth/web/auth-state-persistence

を確認してください。サインイン前またはサインイン後に認証状態の永続性を指定または変更できるようになりました。あなたの場合、次のようにセッションのみの永続性を指定できます。 firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)

+0

リンクは質問に答えるかもしれませんが、この答えへのリンクから必要な内容を引用と一緒に追加して、リンクなしでも回答にすると良いでしょう。詳細については、[回答]をご覧ください –

+0

答えの詳細が追加されました。 – bojeil

関連する問題