アプリにTwilioを使用しており、本番環境では、herokuのCLIを使用して認証トークンを設定します。sms-spec
(https://github.com/monfresh/sms-spec)を使用して、アプリのTwilio統合をローカルでテストしています。ENV['TWILIO_AUTH_TOKEN']
テスト環境でトークンに設定したい。
変更を加えるたびにガードを使用してテストを自動実行するので、テストを実行するたびにENV変数を手動で設定する必要はありません。また、セキュリティ上の理由から、ソースコードにトークンを入れたくありません。
ローカルテスト環境のENV変数を永続的で、ソースにないように設定する方法はありますか?私はこれを研究するのに数時間を費やしました、そしてこれをする方法の良い説明を見つけることができないようです。どんな助けでも大歓迎です:)
2つのアプローチ:
Dotenv
(link)のようなgemを使用します。これは、開発用のほとんどのアプリケーションで使用しているアプローチです。gemをgemfileに含め、バンドルインストールしてから、環境変数の設定を。というトップレベルのファイルに保存するだけです.env
。Railsサーバーを再起動すると、ENVが自動的にロードされます。非常に使いやすく、便利です。ENV部分に柔軟性があり、Rails 4.1以降を実行している場合は、を使用できますconfig/secrets/yml
。これは、Rails4.1リリースノートのセクション2.2に詳しく記載されています。したがって、あなたの場合、次のように設定します。
開発:twilio_auth_token:verysecretstring
次に、イニシャライザで、を参照する代わりにENV['TWILIO_AUTH_TOKEN']
、を使用しますRails.application.secrets.twilio_auth_token
。私はこれを自分で試したことはありませんが、別の宝石ではなくネイティブのRails機能を使用したいので、リストにあります。
もちろん、あなたの秘密を含むファイルは慎重に保護する必要があります。少なくとも、.gitignore
秘密がコードリポジトリに侵入しないように含めるようにしてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加