Firebase Authのカスタムクレーム(Custom Claim)をローカルで設定するテンプレートを作成しました。
こちらからダウンロードして利用してください。
READMEにも記載がありますが、テンプレートの利用方法はこちらです。
service-account.json
とうい名前で配置yarn install
node claims.js {uid}
コマンドを実行admin: true
のカスタムクレームが付与されます。
別のカスタムクレームを付与したい場合はclaims.js
のファイルを修正してください。
Firebase AuthのUserに属性を定義する事ができます。
これはFirebase Admin SDKでしか設定ができないので、上記のようにAdmin SDKの秘密鍵が必要になります。
配布しているテンプレートでは、admin: true
のカスタムクレームが付与されます。
そうすると、Cloud Firestoreのデータベースセキュリティルールで、以下のようにadmin: true
のユーザーだけが操作できるコンテンツとしてデータを保護する事ができます。
{
"rules": {
"adminContent": {
".read": "auth.token.admin === true",
".write": "auth.token.admin === true",
}
}
}
また、スマートフォンアプリやWebアプリからもカスタムクレームは取得できるので、ユーザーの役割に応じたコンテンツの制限を行う場合は利用するべき機能です。
管理者権限等、特定のユーザーのみにAdmin権限を渡したい場合は、今回の方法で十分かと思います。
もし、課金をトリガーとしてカスタムクレームでプレミアム会員の判断したい場合などでは、Cloud Functionsと組み合わせてカスタムクレームを付与すると良いでしょう。
以上、Firebase Authのカスタムクレーム(Custom Claim)をローカルで設定する方法の解説でした。
3月19日にアプリ開発講座を開催します!会場は岐阜県美濃加茂市のコワーキングスペース「こやぁね」です。興味のある方は是非ご参加ください!
Read More可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More3月19日にアプリ開発講座を開催します!会場は岐阜県美濃加茂市のコワーキングスペース「こやぁね」です。興味のある方は是非ご参加ください!
Read More可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More