Firebase (認証・通知)周りの仕様などの調査になります。
ログインが成功すると、Firebase で独自の IDトークン
が発行されます。
Firebase IDトークンの有効期限は1時間です。
IDトークン自体は JWT
形式となり、ペイロード部に下記のクレームを含みます。
クレーム | 説明 | 備考 |
---|---|---|
exp | 有効期限 | 将来の時点であることが必要です。 この時間は、UNIX エポック時刻からの秒数です。 |
iat | 発行時間 | 過去の時点であることが必要です。 この時間は、UNIX エポック時刻からの秒数です。 |
aud | 対象 | Firebase プロジェクトの ID(Firebase プロジェクトの一意の識別子)であることが必要です。 これは、プロジェクトのコンソールの URL で確認できます。 |
iss | 発行元 | “https://securetoken.google.com/<projectId>” であることが必要です。 は、上記の aud で使用されたものと同じプロジェクト ID です。 |
sub | 件名 | 空ではない文字列、またはユーザーまたはデバイスの uid であることが必要です。 |
auth_time | 認証時間 | 過去の時点であることが必要です。 ユーザーが認証を行った時間です。 |
Paylaod:
{
"iss": "https://securetoken.google.com/your-app",
"name": "Takahiro Ikeuchi",
"picture": "https://lh3.googleusercontent.com/-Qpfn58Km92Q/AAAAAAAAAAI/AAAAAAAAAAk/qdpjxL6--7k/photo.jpg
",
"aud": "your-app",
"auth_time": 1499662456,
"user_id": "UtQOa6xxxxxxQmAr5jiUneun1",
"sub": "UtQOa6xxxxxxQmAr5jiUneun1",
"iat": 1499662456,
"exp": 1499666056,
"email": "takahiro.ikeuchi@gmail.com",
"email_verified": true,
"firebase": {
"identities": {
"google.com": [
"1050073xxxxxx7797572"
],
"email": [
"takahiro.ikeuchi@gmail.com"
]
},
"sign_in_provider": "google.com"
}
}
Auth オブジェクトに関連があることが発生すると、Auth リスナーに通知が届きます。
SDKの無いPHPから操作するには…
Firebase Cloud Messaging(FCM)
端末の特定には、Firebaseが発行する 登録トークン
を使う。
FCM SDK はアプリの起動時にクライアント アプリのインスタンスの登録トークンを生成します。
登録トークンは次のような場合に変更されることがあります。
アプリがアンインストールされていた場合、FCM はそのメッセージをすぐに破棄し、登録トークンを無効にします。
それ以降、そのデバイスにメッセージを送信しようとすると NotRegistered エラーが発生します。
Firebase 公式ドキュメント