在将流星应用程序部署到 Heroku 或其他非流星托管基础设施并使用第三方 OAuth 登录服务包时,accounts-facebook
必须关注安全地维护每个第三方登录服务的 API 密钥和 API 机密。
在这种情况下,我如何安全地维护不同类型环境(例如,开发、登台和生产)的环境特定安全信息?
在将流星应用程序部署到 Heroku 或其他非流星托管基础设施并使用第三方 OAuth 登录服务包时,accounts-facebook
必须关注安全地维护每个第三方登录服务的 API 密钥和 API 机密。
在这种情况下,我如何安全地维护不同类型环境(例如,开发、登台和生产)的环境特定安全信息?
在维护部署策略时,有开发、登台和生产环境,代码通过这些层移动,从开发箱开始,到生产结束,需要考虑两件事:不向 VCS 系统提交安全信息像 git 一样,环境配置维护方便。
可以考虑为上述用例使用环境变量。
例如,要配置accounts-facebook
,您可以在流星应用程序中编写以下内容server/config.js
:
Accounts.loginServiceConfiguration.remove({
service: "facebook"
});
Accounts.loginServiceConfiguration.insert({
service: "facebook",
appId: process.env.FACEBOOK_APP_ID,
secret: process.env.FACEBOOK_APP_SECRET
});
以下几行是必不可少的:
appId: process.env.FACEBOOK_APP_ID,
secret: process.env.FACEBOOK_APP_SECRET
process.env
让您访问所有环境变量。
然后,您可以只设置环境变量FACEBOOK_APP_ID
并FACEBOOK_APP_SECRET
特定于您的环境 - 开发、登台或生产。