2016-10-03 6 views
0

私はノードで動作し、JWT(json web token)でmongoose APIを表現しています。私のconfig.jsファイルを秘密の私の鍵(.gitignore - > config.js)を保つようにプッシュしませんが、travisがのmochaで私のテストを実行すると、それはエラー:Cannot find module './config'を返します。そう、私はそれを嘲笑してみたが、それは動作しませんjwt config秘密ファイルpush on git

  • 私は私のconfig.jsのファイルをプッシュすることができますが、それは安全ではないではないのか?
  • どのように私は私の必要依存config.jsを模擬することができますか?

答えて

2

repoでconfig.jsをプッシュする必要があります。しかし、このようにする必要があります:

/*jshint esversion: 6 */ 
'use strict'; 

module.exports = function() { 
    return { 
     SERVER_HOST: process.env.HOST, 
     OTP: { 
      LENGTH: 6, 
      DURATION: 300000, //ms 
     }, 
     TWILIO: { 
      ACCOUNT_SID: process.env.TWILIO_ACCOUNT_SID, 
      AUTH_TOKEN: process.env.TWILIO_AUTH_TOKEN, 
      MESSAGE_FROM: process.env.TWILIO_MESSAGE_FROM 
     }, 
     JWT: { 
      SECRET: process.env.JWT_SECRET, 
      ALGORITHM: 'HS512', 
      ISSUER: 'GOHAN' 
     }, 
     BCRYPT: { 
      SALT_ROUNDS: 10 
     }, 
     EMAIL: { 
      USER: process.env.EMAIL_USER, 
      PASSWORD: process.env.EMAIL_PASSWORD 
     }, 
     REDIS: { 
      HOST: process.env.REDIS_HOST, 
      PORT: process.env.REDIS_PORT 
     }, 
     AWS: { 
      ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID, 
      SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY, 
      S3: { 
       PROFILE_PIC_BUCKET: process.env.AWS_S3_PROFILE_PIC_BUCKET, 
       VOICE_MESSAGES_BUCKET: process.env.AWS_S3_VOICE_MESSAGES_BUCKET, 
       REGION: process.env.AWS_S3_REGION, 
       SIGNED_URL_EXPIRY: 900 
      } 
     }, 
     TCP_SERVER: { 
      PASSWORD: process.env.TCP_SERVER_PASSWORD 
     }, 
     GOOGLE_API_KEY: process.env.GOOGLE_API_KEY, 
     APN: { 
      CONNECTION: { 
       production: (process.env.NODE_ENV === 'production'), 
       cert: process.env.APN_CERT, 
       passphrase: process.env.APN_PASSPHRASE, 
       key: process.env.APN_CERT 
      }, 
      FEEDBACK: { 
       address: process.env.APN_FEEDBACK_ADDRESS, 
       cert: process.env.APN_CERT, 
       key: process.env.APN_CERT, 
       passphrase: process.env.APN_PASSPHRASE, 
       interval: process.env.APN_INTERVAL, 
       batchFeedback: process.env.APN_BATCHFEEDBACK 
      } 
     }, 
     FCM: { 
      API_KEY: process.env.FCM_API_KEY, 
      RETRY_LIMIT: 3 
     } 
    }; 
}; 

すべてのコードは、環境変数から独立している必要があります。安全性を保証するものではありません。

アプリを実行する前に環境変数を読み込むことができます。

テスト、開発環境、およびプロダクト環境にも異なる.envファイルを使用できます。

編集: 上記のconfig.jsは私のプロジェクトのものです。

+0

私のテストのためにconfig.spec.jsファイルを作成することはできませんか?アプリでconfig.jsを削除しても機能しません。 キャッチされないTypeError:秘密は文字列またはバッファでなければなりません。 – user3703539

関連する問題