CodeIgniter + Firebase サービスアカウントJSONの読み込み方法

Tech
Table of Contents

方法の比較

  • ① JSONファイルそのまま配置: セキュリティ低、開発時のみ推奨
  • ② .env に記述: バランス良い、本番でもOK
  • ③ Base64+.env: おすすめ
  • ④ GCP Secret Manager: 本番・チーム開発に最適

① JSONファイル配置

APPPATH配下の web 非公開ディレクトリに置く。必ず .gitignore に追加。絶対にリポジトリに含めない。

② .env に JSON 内容を記述

FIREBASE_CREDENTIALS に JSON を記述し env 関数で読み込む。

③ Base64+.env

base64 -w 0 コマンドでエンコードし FIREBASE_CREDENTIALS_BASE64 に記述。base64_decode で復元。

④ GCP Secret Manager

composer require google/cloud-secret-manager でインストール。accessSecretVersion で取得。

CodeIgniter 組み込み例
app/Libraries/FirebaseAuth.php を作成。__construct 内で env から証明汎を読み込み、getCredentials で配列を返す。

まとめ

  • 個人・ローカル開発: ① or ②
  • チーム・本番環境: ③ Base64+.env
  • GCP本番運用: ④ Secret Manager

どの方法でも .gitignore への追加と公開ディレクトリへの配置禁止は必須。

コメント