環境変数・.env の管理
GOOGLE_CLIENT_ID や GOOGLE_CLIENT_SECRET など、本番とローカルで違う値を使う設定 を、環境変数と .env でどう持つかをまとめます。ログイン設定の記録の「運用編」として参照してください。
1. なぜ環境変数にするか
- 秘密情報(クライアントシークレット、API キーなど)をソースコードに書かないため。
- 環境ごとに値が違う(ローカル用・本番用)ため、1つのコードベースで切り替えられるようにする。
2. .env ファイルの扱い
- プロジェクト直下に
.envを置き、KEY=valueの形式で書く。 .envは .gitignore に含める。リポジトリにコミットしない。- 本番サーバーでは、サーバー側で環境変数を設定する(さくらなら .env を手動で置く、または systemd の
Environment=などで渡す)。
3. 主な変数の例(ログインまわり)
| 変数名 | 用途 |
|---|---|
GOOGLE_CLIENT_ID |
Google OAuth 用クライアント ID |
GOOGLE_CLIENT_SECRET |
Google OAuth 用シークレット |
FLASK_SECRET_KEY |
セッションなどで使う秘密鍵 |
ローカル用と本番用で別の値を使う場合、それぞれの環境の .env に書くか、本番のみサーバーの環境変数で上書きする。
4. アプリでの読み方
- Flask では
os.environ.get("GOOGLE_CLIENT_ID")や、python-dotenvを使う場合はload_dotenv()で.envを読み込んでからos.environ.get(...)で参照する。 - 存在しないときのフォールバック(例: 開発時だけダミー値を出す)は、必要に応じてアプリ側で分岐する。
5. 関連
- ログイン設定の記録(/login-guide)… Google Cloud Console でクライアント ID を作る手順。
- 本番デプロイ時の設定は、さくらサーバーにアップする手順のノートを参照。