jwt 配置秘密文件推送 git

jwt config secret file push on git

我在一个节点上工作,使用 JWT(json 网络令牌)表达猫鼬 API。我不推送我的 config.js 文件来保密我的密钥 (.gitignore -> config.js) 但是当 travis 运行 我用 mocha 进行测试时它 return 错误:Cannot find module './config'.

我试着模仿它,但它不起作用,所以:

您应该在回购中推送 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来自我的一个项目