前提・実現したいこと
ログイン認証機能をfirebase
を用いて実装しています。
ローカルでは問題なく機能しています。
しかし、この認証機能はフロントエンドに実装したため、firebaseConfig
の情報を環境変数で隠蔽することができません。
firebaseConfig
の情報をgithubやクライアントのソースコードに晒すことなく機能させる方法を教えていただきたいです。
発生している問題・エラーメッセージ
実際にデプロイをしたelastic beanstalk
環境にアクセスすると以下のエラーが出ます。
http://multidocker-env.vwnrixavuv.ap-northeast-1.elasticbeanstalk.com/
Zr { code: "auth/invalid-api-key", message: "Your API key is invalid, please check you have copied it correctly."} code: "auth/invalid-api-key" message: "Your API key is invalid, please check you have copied it correctly." __proto__: Error
該当のソースコード
//レポジトリ構成 article ├ client ├ └ src │ └ firebase.ts ├ api ├ nginx └ docker-compose.yml
firebaseConfig
を以下のように環境変数で設定しています。
ts
1//firebase.ts 2import * as firebase from 'firebase'; 3import 'firebase/auth'; 4 5const firebaseConfig = { 6 apiKey: process.env.REACT_APP_FIREBASE_API_KEY, 7 authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN, 8 databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL, 9 projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID, 10 storageBucket: '', 11 messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID, 12 appId: process.env.REACT_APP_FIREBASE_APP_ID, 13}; 14 15firebase.initializeApp(firebaseConfig); 16 17export default firebase;
docker-compose.yml
は以下のように設定しました。
//docker-compose.yml client: build: dockerfile: Dockerfile.dev context: ./client volumes: - /app/node_modules - ./client:/app environment: - REACT_APP_FIREBASE_API_KEY=${REACT_APP_FIREBASE_API_KEY} - REACT_APP_FIREBASE_AUTH_DOMAIN=${REACT_APP_FIREBASE_AUTH_DOMAIN} - REACT_APP_FIREBASE_DATABASE_URL=${REACT_APP_FIREBASE_DATABASE_URL} - REACT_APP_FIREBASE_PROJECT_ID=${REACT_APP_FIREBASE_PROJECT_ID} - REACT_APP_FIREBASE_MESSAGING_SENDER_ID=${REACT_APP_FIREBASE_MESSAGING_SENDER_ID} - REACT_APP_FIREBASE_APP_ID=${REACT_APP_FIREBASE_APP_ID}
elastic beanstalk
には以下のように環境変数を設定しました。
ソースコード全容は以下のgithubにあります:
https://github.com/jpskgc/article
補足情報(FW/ツールのバージョンなど)
・client: react/axios ・api: golang/gin ・web server: nginx ・db: mysql ・container: docker ・ci-tool: travis ・deploy: aws elastic beanstalk
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。