Firebase

雑記 Firebase カスタムトークンを利用したRealtimeDB Rule制御 技術検証

 

 

カスタム認証では他の認証方式とは異なり、Firebase内にユーザの認証情報を持ちません。
そのため、下記の手順で認証を行うことになります。

既存サービスのサーバでユーザ認証を行う

サーバから既存のユーザIDでFirebaseにアクセストークンを発行してもらう

アクセストークンをクライアントに返す

クライアントがアクセストークンでFirebaseにログイン

既存のユーザIDでFirebaseにアクセス可能

https://blog.xxxaz.jp/post-690/

秘密鍵の作成

 

 

https://console.cloud.google.com/apis/credentials?authuser=3&pli=1&project=testfirebasedbrulekanehi-404fb&folder=&organizationId=

 

APIキーの有効化

https://console.cloud.google.com/marketplace/product/google-cloud-platform/customer-identity?hl=ja&project=testfirebasedbrulekanehiro&folder=&organizationId=

 

TestFirebaseDbRuleKanehiro $ composer require firebase/php-jwt

 

Rule

{"rules": {
    ".read":false,
    ".write":false,
    "users": {
      "$user_id": {
        ".write": "auth.uid === $user_id", //ユーザー情報の変更は自分自身のみ
        ".read": "auth.uid === $user_id"
      },    
    },
    "rooms": {
      ".read": "root.child('rooms/users/' + auth.uid).exists()",
      ".write": "root.child('rooms/users/' + auth.uid).exists()",
    },
    "test1":{".read": "auth != null"},
    "test2":{".read": "auth.uid == 'admin'"},
    "test3":{".read": "auth.token.custom_permit_option == 'test'"}
  }
}

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)