2017-11-14 7 views
0

誰かがログインしているときにFirebase IDトークンを使用して自分のサイトにデータを表示します。 トークンをクライアント側のクッキーに保存し、彼のクッキーファイルから取り出し、バックエンドサーバーに送信します。パスワードリセット時のトークンの変更

パスワードをリセットすると、すべてのIDトークンを削除して、そのユーザー名とパスワードを使用してログインしているすべてのクライアントが切断されるようにしたいと考えています。

このオプションは有効ですか?もしそうなら、どうすればいいのですか?彼らは彼らのドキュメントでそれを言及していないようです。

+0

本当にIDトークンをクッキーに格納する必要はありますか?ユーザーがFirebaseにログインすると、firebase.auth.currentUser.getIdToken()を使用してIDトークンを取得できます。また、ユーザがサイトを離れるときにFirebaseの認証状態がどのように維持されるかを管理することもできます(https://firebase.google.com/docs/auth/web/auth-state-persistenceを参照)。あなたはユースケース全体を説明していませんが、これらの2つの項目は、クッキーを使用せずにあなたが望むものを達成できるようにするかもしれません。 –

+0

これは私の現在のシステムがどのように動作するかを示しています。ログイン入力のために私のウェブサイトからGETリクエストを受信するfirebase関数を持っています。彼らはGETリクエストを使って電子メールとパスワードを取得した後、バックエンドからユーザーにログインし、私が表示した重要なものだけをユーザーに送ります。私はクライアント側からfirebaseにログインせず、ログインはサーバ側で行われ、クライアントに送信されます。これは私のバックエンドにそれをチェックし、データを送信するトークンを送信するためにPHPを使用する方法です –

+0

私は少し混乱しています。ユーザはあなたのWebクライアントにID /パスワードを入力し、ID /パスワードをPHPのバックエンドに渡しますか?PHPのバックエンドはID /パスワードをFirebaseの機能に送りますか?実際のFirebase認証は、PHPコードまたはFirebase関数のどこで行われますか?それとも、私はあなたの設定を完全に誤解していますか? –

答えて

0

ユーザーのパスワードがリセット、変更、または関連付けられた電子メールが更新されると、Firebase Authはセキュリティ上の理由からそのユーザーの既存のセッションをすべて無効にします。これにより、Firebase Authバックエンドの観点から、そのユーザーのIDトークンが効果的に無効になります。また、リフレッシュトークンは新しいIDトークンを発行することもできません。

また、私はScottに同意します。 IDトークンを取得するには、currentUser.getIdToken()を使用する必要があります。 IDトークンが期限切れになると、このAPIはあなたのIDトークンを更新します。

+0

おそらく私は自分の意図を十分に説明していないでしょう、私がスコットに返答したものを見てください。 –

+0

あなたはサインインしてIDトークンをクライアントに返すCloud Functionエンドポイントに電子メール/パスを渡すと仮定します。 IDトークンはAuthバックエンドの観点からは無効になりますが、バックエンドに通知するためにパスワードリセットのための独自のハンドラを追加しなければ簡単にそのIDを検出できない場合があります無効化。パスワードリセットのリンク先ページを作成する方法については、https://firebase.google.com/docs/auth/custom-email-handler – bojeil

+0

こちらをご覧ください。IDトークンの寿命は短く、わかりません私はトークンを削除することができます。 –

関連する問題