Firebase Authenticationを業務で使ってみてわかったことをまとめます。
ほぼ自分用のメモ
Tokenについて
認証するとiD TokenとrefreshTokenの2つが返ってくる
実際の認証はこのID Tokenを使ってやりとりをする。
ID Tokenは1時間で切れるのでrefresh Tokenを使いトークンを更新する必要がある。
refresh tokenはほぼ永続化され、下記の行動をとった時に無効化される
・ユーザーのメールアドレス、パスワードが変更された
・ユーザーが削除された
・ユーザーが無効にされた
ログアウトした場合も refresh tokenは利用可能なので自前で無効化する機構を用意する必要がある。
公式ドキュメントによるとユーザーのメタデータにrevokeした日時をセットしアクセス制限をする方法が掲載されている
Firebase Realtime Database でユーザー固有のメタデータを更新します。
refresh tokenを無効化させるには下記の通りに行う。
しかし、下記の方法だと発行されたすべてのrefresh tokenを無効化させることしかできない。
https://firebase.google.com/docs/auth/admin/manage-sessions?hl=ja#revoke_refresh_tokens
トークンごとに無効化をさせたい場合は、自前で無効化させる機構を用意する必要がある。
フロントエンド開発でお困りのことはありませんか?
フロントエンドの開発支援を行っています。
・Reactの開発をお願いしたい
・コーディング作業を依頼したい
・javascriptライブラリを作って欲しい。
上記以外にも何かありましたらお気軽にお問い合わせください。