【问题标题】:How can I make this callback change dynamically for local, staging and production?如何为本地、暂存和生产动态更改此回调?
【发布时间】:2019-12-09 20:40:39
【问题描述】:

此功能在我的本地运行良好。

但是,如果我想让它在 staging 上工作,我需要将 callbackURL 更改为:“https://staging-jobdirecto.herokuapp.com/facebook/callback”,然后提交到 staging。

对于生产:“https://jobdirecto.herokuapp.com/facebook/callback”。

有什么方法可以让我动态更改(无需我经常更改这段代码)?

passport.use(new FacebookStrategy({
        clientID: 1227008554140703,
        clientSecret: fbSecret,
        callbackURL: "http://localhost:8080/facebook/callback"

    },
    function(accessToken, refreshToken, profile, done) {
        return database.findOrCreateFacebookUser(profile.id, profile.displayName).then((user) => {
            done(null, user)
        })
    }
));

对于生产来说,我认为可以通过这样的方式完成,但我不确定如何将其应用到暂存环境:

if (process.env.CALLBACK !== undefined) {
    callback = process.env.CALLBACK
} else if () {
    callback = "http://localhost:8080/facebook/callback"
}

感谢您的帮助, 威尔弗雷多

【问题讨论】:

  • 总是从环境变量中读取而不是硬编码怎么样?
  • 您还可以实现动态配置逻辑,以根据环境选择正确的配置,如此处所述codeburst.io/…
  • 您是否在 Heroku 上托管登台和生产?
  • 是的,我都在 heroku 上托管

标签: node.js staging


【解决方案1】:

您正在使用 Heroku,因此您不需要 if else 检查,因为您可以为不同服务器中的环境参数提供不同的变量。我的意思是你可以改变代码,

passport.use(new FacebookStrategy({
        clientID: 1227008554140703,
        clientSecret: fbSecret,
        callbackURL: process.env.CALLBACK_URL

    },
    function(accessToken, refreshToken, profile, done) {
        return database.findOrCreateFacebookUser(profile.id, profile.displayName).then((user) => {
            done(null, user)
        })
    }
));

从 Heroku Config Vars 中提供名为 CALLBACK_URL 的配置参数

节点将有权访问您从 Config Vars 提供的 CALLBACK_URL 参数。

此外,当您在本地工作时,因为您没有来自 heroku 的配置变量,您可以在项目的根目录中创建一个 .env 文件并提供与

相同的参数

.env

CALLBACK_URL=http://localhost:8080/facebook/callback

【讨论】:

  • @marcus 你试过了吗?
  • 我刚才试过了。我在舞台和制作方面工作得很好。但它不适用于本地。我在我的根文件夹中创建了一个名为“.env”的文件,并复制并粘贴了这一行“CALLBACK_URL=localhost:8080/facebook/callback”,但它似乎没有读取它。
  • 嗯,你能控制台记录 process.env.CALLBACK_URL 吗?它应该通过 dotenv 模块读取它
  • 最后我使用了一个有效的 if 语句。不过感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多