OAuthException: этот код авторизации был использован - Facebook

Кажется, что новый релиз Facebook 5 декабря вызывает у меня некоторые проблемы. Кто-нибудь еще получает эту ошибку?

Коала::Facebook::APIError (OAuthException: Этот код авторизации был использован.)

Я могу oauth, но когда я делаю вызов, делая следующее... я получаю ошибку. то есть ниже:

@friends = graph.get_object("/me/friends")

Вот обновление Facebook:

Новые ограничения безопасности для кодов авторизации OAuth. Мы будем разрешать обмен авторизационных кодов только для токенов доступа один раз и потребовать их замены на токен доступа в течение 10 минут после их создания. Это соответствует спецификации OAuth 2.0, которая с самого начала заявляла, что "коды авторизации ДОЛЖНЫ быть кратковременными и одноразовыми". Для получения дополнительной информации ознакомьтесь с нашей документацией по аутентификации.

Если кто-то может помочь или даже более конкретно уточнить, что означает обновление Facebook, это было бы очень полезно. Я получаю это используя Rails Koala Gem.

Кажется, здесь сообщается, но ответы не помогли.

http://developers.facebook.com/bugs/121266004701942?browse=search_50c113068fae60719135553

2 ответа

Вы вставили драгоценный камень omniauth_facebook? Поместите следующий код в intializers/omniauth.rb.

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['app_id'], ENV['secret_id']
end

Это их разочаровывающее изменение - в основном вам нужно кэшировать в сессии каждый раз, когда вы загружаете get_user_info_from_cookies

  fb_user = session[:fb_info] || oauth.get_user_info_from_cookies(cookies)
  session[:fb_info] = fb_user
  session[:fb_token] = fb_user['access_token'] # is is the right one?

К сожалению, он по-прежнему будет вызывать ошибки, потому что это будет действительно старый код из сеанса с истекшим сроком действия. Я обертываю его в блоке begin / rescue и прошу пользователя нажать, чтобы снова вернуться к oauth (который получит новый токен), или попробовать войти в систему без facebook / и т.д.

Другие вопросы по тегам