【问题标题】:401 Unauthorized using OmniAuth-Twitter401 未经授权使用 OmniAuth-Twitter
【发布时间】:2013-06-15 12:38:57
【问题描述】:

当我尝试在Development 中将OmniAuth-Twitter gem 实施到我的rails 应用程序中时,我收到了401 Unauthorized 我已经阅读了几篇帖子说服务器时间不匹配。

调用http://localhost:3000/auth/twitter时出现错误

我有一个回调网址。 我的 api 键正确。 所以我认为时间戳是问题所在。

我该如何将 twitter 的服务器时间与本地机器的时间进行比较?

如何调整本地机器的时间?

【问题讨论】:

  • 你必须在 twitter api 中查看你的回调 url,你提到你的回调 url 应该以 *http://127.0.0.1/ 开头 **
  • @dark-wish 它确实...
  • 您使用的是 consumer_key 和 consumer_secret 还是访问令牌?
  • 可以在这里发布 rake:routes 输出吗?
  • @ajet 是的,我正在使用消费者密钥。我真的只需要时间戳信息...

标签: ruby-on-rails ruby-on-rails-3 twitter omniauth twitter-oauth


【解决方案1】:

我关注了这个railscasts episode。他在其中声明要设置如下键:

Rails.application.config.middleware.use OmniAuth::Builder do
   provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
end

但 gem 文档指出:

Rails.application.config.middleware.use OmniAuth::Builder do
   provider :twitter, "CONSUMER_KEY", "CONSUMER_SECRET"
end

删除ENV[] 解决了这个问题。

【讨论】:

  • ENV[] 调用之所以存在,是因为您不应该将身份验证密钥,尤其是机密信息直接放入代码中,因为有一天它可能会出现在公共 GitHub 存储库中,或者以其他方式暴露给错误的人.您应该将这些值放入操作系统和主机中的配置/环境变量中。 ENV[] 从环境中获取这些值。
猜你喜欢
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 2014-01-02
  • 2013-10-11
  • 2016-12-24
  • 2014-11-10
相关资源
最近更新 更多