我正在使用appid-serversdk-nodejs并且我的代码工作正常,并且在本地和 IBM 云中一切正常。
但是我必须手动切换 APP-URL (localhost:3000 vs .eu-gb.mybluemix.net) 我知道我可以在不提供护照设置的情况下做到这一点,但是我怎样才能拥有一个适用于以下情况的代码库:
- 本地开发测试
- ibm 云中的实例
- ibm 云中的生产实例
我说的是这段代码:
// The redirectUri value can be supplied in three ways:
// 1. Manually in new WebAppStrategy({redirectUri: "...."})
// 2. As environment variable named redirectUri
// 3. If none of the above was supplied the App ID SDK will try to retrieve
// application_uri of the application running on IBM Cloud and append a
// default suffix "/ibm/bluemix/appid/callback"
passport.use(new WebAppStrategy({
tenantId: "removed",
clientId: "removed",
secret: "removed",
oauthServerUrl: "https://eu-gb.appid.cloud.ibm.com/oauth/v4/REMOVED"
redirectUri: "https://REMOVED.eu-gb.mybluemix.net" + CALLBACK_URL
//redirectUri: "http://localhost:3000" + CALLBACK_URL
}));
更新:我已将数据移至 .env 文件,但这并不能解决我的问题。
tenantId: process.env.APPID_tenantId,
clientId: process.env.APPID_clientId,
secret: process.env.APPID_secret,
oauthServerUrl: process.env.APPID_oauthServerUrl,
redirectUri: process.env.APPID_redirectUri + CALLBACK_URL
现在我必须更改 .env 文件,这会导致新的提交和构建。我想利用 APP-ID 和我们在 IBM 云中的 Node 服务器之间的连接。
如果我不提供 redirectUri 或整个 WebAppStrategy,我会收到错误