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