0

我在远程服务器上使用带有设计(用于身份验证)和omniauth gem 的Rails 应用程序。当我过去部署到 Heroku 时,我可以在终端中设置环境变量,但我正在使用的远程服务器上没有提供。因此,我在底部添加了以下内容.bashrc

export TWITTER_KEY="LxAuQ1Chmas;dlfkjdsal;fjds" TWITTER_SECRET="CC2XpLOeMJbvYphlafsdlkfjdsalkfj"

希望这会设置在 Devise.rb 文件中配置的环境变量

 config.omniauth :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"]

但是,当我尝试使用 Twitter 登录时,我得到了这个

OAuth::Unauthorized (401 Unauthorized):
  oauth (0.4.7) lib/oauth/consumer.rb:216:in `token_request'
  oauth (0.4.7) lib/oauth/consumer.rb:136:in `get_request_token'
  omniauth-oauth (1.0.1) lib/omniauth/strategies/oauth.rb:29:in `request_phase'
  omniauth-twitter (1.0.0) lib/omniauth/strategies/twitter.rb:63:in `request_phase'
  omniauth (1.1.4) lib/omniauth/strategy.rb:214:in `request_call'

所以我假设环境变量没有被正确读取。你能解释一下我设置它们的另一种方式吗?

4

1 回答 1

1

我建议使用figaro gem 管理环境变量。

将环境变量放在 yaml 配置文件中,它们将在ENV.

它还提供了一个有用的 rake 任务来设置 Heroku 上的变量。

于 2013-06-29T07:32:29.397 回答