【问题标题】:OAuth consumer stopped working, where do I start debugging?OAuth 消费者停止工作,我从哪里开始调试?
【发布时间】:2012-10-18 03:30:54
【问题描述】:

我有一个使用 Twitter OAuth 进行身份验证的小型 Sinatra 应用程序。从 10 月 8 日到今天的某个时间,它停止了工作。

症状:我被重定向到 Twitter,我登录,我被重定向回我的应用程序,但 我的应用程序无法识别我已登录。

我可以排除我自己的代码(一个月没碰过)和平台(Heroku 是托管的,所有请求看起来都很好)。

代码的相关部分是这样的(基于 Alex Lang 的 this code):

get '/session_auth' do
  if params[:oauth_verifier]
    access_token = twitter_client.authorize(
      session[:request_token], session[:request_token_secret], oauth_verifier: params[:oauth_verifier])
    if twitter_client.authorized?
      user = db.load(User.to_id(twitter_client.info['screen_name'])) || User.new(login: twitter_client.info['screen_name'], twitter_access_token: access_token.token,
        twitter_secret_token: access_token.secret)
      db.save! user
      session[:user_id] = user.id
    end
  end
  redirect '/'
end

你如何或从哪里开始调试这样的事情?

【问题讨论】:

    标签: ruby twitter oauth sinatra


    【解决方案1】:

    简答:我将工具链从我的应用程序提升到 Twitter。

    Twitter 将 OAuth 验证器参数发送回我的回调操作,该操作用于 authorize 调用。如果 twitter 客户端在此之后被授权,应用程序会在会话中设置user_id

    authorizeauthorized? 调用来自 twitter_oauth gem。更新版本于 10 月 12 日发布,修复了 authorized? 方法的 API 调用(请参阅 commit on Github)。大奖!

    所以我所要做的就是:

    bundle update twitter_oauth
    

    一切都恢复正常了。我唯一不知道的是为什么 twitter_oauth 以前可以工作。我怀疑 Twitter 已经弃用了他们的部分 API URL,但我想确定一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2017-09-23
      • 2018-09-18
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多