gpt4 book ai didi

ruby-on-rails - Ruby on Rails OAuth应用程序可在客户端上运行,但不能在服务器上运行(OAuth::Unauthorized(401未经授权))

转载 作者:行者123 更新时间:2023-12-02 04:13:39 26 4
gpt4 key购买 nike

我有一个Ruby on Rails应用程序,可以在我的计算机和服务器上正常运行。我将此应用程序移至在另一台托管服务上运行的另一台服务器,但遇到了与OAuth Ruby Gem相关的问题。

我使用OAuth gem执行的任何请求都会得到:

OAuth::Unauthorized (401 Unauthorized):
oauth (0.4.3) lib/oauth/consumer.rb:217:in `token_request'
oauth (0.4.3) lib/oauth/consumer.rb:139:in `get_request_token'
...

我的代码是:
def self.consumer
# The readkey and readsecret below are the values you get during registration
OAuth::Consumer.new("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "YYYYYYYYYYYYYYYYYYYYYYYYYYYY", {:site => "http://api.twitter.com"})
end

def create_authorize_url
@request_token = UserController.consumer.get_request_token(:oauth_callback => "http://mysite.com/callback")
session[:request_token] = @request_token.token
session[:request_token_secret] = @request_token.secret

redirect_to @request_token.authorize_url
end

问题是相同的代码在我的计算机和其他服务器上都能很好地工作。这仅在一台服务器上发生。有什么与防火墙有关的东西或可以阻止OAuth call 的东西吗?

我搜索了很多这个错误,但没有得到任何答案,这就是为什么我在这里问这个问题。

谢谢。

最佳答案

我发现我的Twitter Consumer Key和Secret位于config / application.yml中,并且此文件在.gitignore中列出,因此该文件没有被推送到Heroku。结果,由于缺少应用程序的凭据,因此从Twitter OAuth中显示了此401错误。解决方案是在.gitignore文件中找到提及任何包含您的Twitter(或其他OAuth提供者的)应用程序凭据的配置文件的行。从.gitignore中删除该行后,执行

git add .
git commit -m "Added back configuration files for OAuth provider"

如果您在heroku上,则可以
git push heroku master

希望这应该可行。

关于ruby-on-rails - Ruby on Rails OAuth应用程序可在客户端上运行,但不能在服务器上运行(OAuth::Unauthorized(401未经授权)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3869032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com