1

私はウェブベースのfirebase javascriptを使って電子メールとパスワードで認証しています。このプロセスでは、firebase-adminを使用してnodejのバックエンドで検証するために使用するトークンを生成します。このトークンが生成されると、私はそれをブラウザのローカル/セッションストレージに保存します。Firebaseトークンをリフレッシュ

フロントエンドは、私は、ブラウザ内に格納されたトークンを注入するHTTPリクエストをインターセプトAngularJsあります。

これは、このトークンの有効期限が切れるしかし、しばらくして、正常に動作しています。だから、nodejs APIに送る前に、このトークンをリフレッシュする最良の方法は何でしょうか?

注:私はcurrentUser.getToken(requet必要があります)すべてのリクエスト?

答えて

1

currentUser.getToken(true)は、現在のトークンが期限切れになったときにトークンをリフレッシュします。それで、不要なトラフィックやFirebaseへのリクエストは作成されません!ここで

firebase.auth().currentUser.getToken(true) 
.then(function(idToken) { 
    // ... do stuff! 
}).catch(function(error) { 
    if (error) throw error 
}); 

私はgetToken()関数の引数としてtrueを追加したことがわかります。これにより、リフレッシュが強制されます。ここで

getToken()関数のFirebase Documentationです。

私はそれが助けてくれることを願っています!

+1

私はあなたがそれを後方に持っていると思います。マニュアルでは、forceRefreshがtrueの場合、有効期限に関係なく更新されます。 forceRefrshパラメータ(デフォルトはfalse)をスキップすると、期限が切れるまで同じトークンが返され、新しいトークンが返されます。 – WillB

+0

あなたがこれ以上そのparamerterを指定することはできませんように見える..私は[4.4.0 JS SDK](https://github.com/firebase/firebase-js-sdk/blob/master/src/messagingを使用しています/controllers/window-controller.ts) – peval27

関連する問題