LoginSignup
0
1

More than 1 year has passed since last update.

firebaseAuthの開始方法およびfschuindt / firebase_id_tokenの実装をみる

Last updated at Posted at 2022-07-08

概要

RailsでfirebaseAuthのJWTを用いて認証するまでの流れです。

firebaseAuth

  1. firebaseプロジェクト作成
  2. firebaseAuth開始
スクリーンショット 2022-07-08 10.29.00.png

(APIを直接実行する場合)

SDKではなくAPIを直接叩きたい場合は以下手順。(ユーザー作成APIの例)

APIキー

プロジェクトの概要の右のアイコンから開ける
https://console.firebase.google.com/u/0/project/{project_id}/settings/general
スクリーンショット 2022-07-08 10.31.03.png

ユーザー作成(idToken取得)

POST https://identitytoolkit.googleapis.com/v1/accounts:signUp?key={{firebase-api-key}}

access_token(JWT)取得

POST https://securetoken.googleapis.com/v1/token?key={{firebase-api-key}}

x-www-form-urlencodedでbodyを指定

grant_type:refresh_token
refresh_token:{{上のrefresh-token}}

(補足)取得したaccess_tokenの内容はここで確認できる

fschuindt / firebase_id_token

firebaseAuthのJWTを検証してpayloadを返すライブラリ
firebaseの推奨する検証方法に準じて実装している

処理の流れ

  1. エントリーポイント
  2. JWTに含まれるkidを取得
  3. kidに対応するGooglの公開鍵を取得
  4. JTWを公開鍵で検証
      1. 参考
  5. 検証したpayloadを返す

payloadからユーザー情報を取得

このライブラリなどが利用していて、before_action :authenticate_userの実装だけでログインユーザーが取れるようにしている。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1