Heroku部署的Sinatra应用如何正确设置会话密钥环境变量
问题解答
两种配置方式都需要执行,分别对应不同运行环境的变量需求,互不冲突:
1. 本地开发环境配置
- 如果你仅在本地运行应用,需要在
~/.bash_profile(使用zsh终端的话对应~/.zshrc)文件中添加如下代码:
export MY_APP_SECRET=你自定义的足够复杂的随机字符串
添加完成后执行source ~/.bash_profile让配置立即生效,本地启动Sinatra应用时就可以读取到该环境变量,保证localhost环境下会话Cookie正常工作。
小提示:你也可以使用
dotenv这类工具,在项目根目录下创建.env文件存储本地环境变量,同时将.env加入.gitignore避免误提交到代码仓库,比修改全局配置文件更灵活。
2. Heroku线上环境配置
- 如果你需要线上部署的Heroku应用正常运行,需要通过Heroku CLI执行如下命令配置线上环境变量:
heroku config:set MY_APP_SECRET=你自定义的线上专属随机字符串
执行完成后Heroku会自动重启应用加载新的配置,线上环境的会话Cookie即可正常生效。
注意:本地和线上的
MY_APP_SECRET不需要保持一致,使用不同的随机字符串安全性更高,避免线上密钥意外泄露。
你当前config.ru中通过ENV['MY_APP_SECRET']读取变量的写法是符合规范的,不需要额外修改。
内容的提问来源于stack exchange,提问作者fullstackplus
相关产品推荐
相关产品推荐

