OAuth "Неверный формат кода подтверждения" - PullRequest
10 голосов
/ 13 октября 2011

У меня есть производственное приложение, и иногда я вижу, что эта ошибка появляется в журналах .. Я не могу воспроизвести его на моем конце, поэтому кажется, что где-то есть пользователь с некоторыми конкретными настройками /куки / и т.д., которые вызывают эту проблему.Я не уверен, что ... Журнал показывает, что этот пользователь был перенаправлен на этот URL обратного вызова: "пользователей / аутентификации / facebook / обратного вызова код = AQCayaAoFOruFgwbfg1D682j8DbxOt0CZYNH3Vv5RtYKlQgSzISyN8ygTn25W_RTl3fu35cS1-tl5ArZ9B_XylwORP0hGU6st8P6TyTYUzfiR1m0poaSRkX-KBeWiBvT6IUsm-Af0VJcUNTQPg-dM1F9y5CgJ2bTJEJqhCE9wYlvkUY3kguwcl3TQ48FTT4-PHA ///?"

1002 * Фактическая ошибка:
RuntimeError: #<OAuth2::Response:0x1da7fae0 @error=#<OAuth2::Error: OAuth2::Error>, @options={:parse=>:query}, @parsed={"{\"error\":{\"message\":\"Invalid verification code format.\",\"type\":\"OAuthException\"}}"=>nil}, @response=#<Faraday::Response:0x1da8fa80 @on_complete_callbacks=[], @env={:response=>#<Faraday::Response:0x1da8fa80 ...>, :request_headers=>{"Content-Type"=>"application/x-www-form-urlencoded"}, :body=>"{\"error\":{\"message\":\"Invalid verification code format.\",\"type\":\"OAuthException\"}}", :status=>400, :url=>#<Addressable::URI:0xed52bf0 URI:https://graph.facebook.com/oauth/access_token>, :request=>{:proxy=>nil}, :parallel_manager=>nil, :response_headers=>{"expires"=>"Sat, 01 Jan 2000 00:00:00 GMT", "access-control-allow-origin"=>"*", "content-type"=>"text/javascript; charset=UTF-8", "connection"=>"close", "www-authenticate"=>"OAuth \"Facebook Platform\" \"invalid_code\" \"Invalid verification code format.\"", "date"=>"Thu, 13 Oct 2011 15:58:29 GMT", "content-length"=>"81", "cache-control"=>"no-store", "x-fb-rev"=>"457598", "x-fb-server"=>"10.65.13.60", "pragma"=>"no-cache"}, :ssl=>{:ca_file=>"/etc/pki/tls/certs/ca-bundle.crt"}, :method=>:post}>>

и параметры были:

{"code"=> "AQCayaAoFOruFgwbfg1D682j8DbxOt0CZYNH3Vv5RtYKlQgSzISyN8ygTn25W_RTl3fu35cS1-tl5ArZ9B_XylwORP0hGU6st8P6TyTYUzfiR1m0poaSRkX-KBeWiBvT6IUsm-Af0VJcUNTQPg-dM1F9y5CgJ2bTJEJqhCE9wYlvkUY3kguwcl3TQ48FTT4-PhA///",
"action"=>"",
"controller"=>""}

Я знаю, если я вручную перехожу к «users / auth / facebook / callback? Code = blah»это вызовет ту же ошибку, потому что параметр кода обратного вызова, очевидно, является поддельным, но не похоже, что в фактическом коде хэша params пользователя есть что-то подозрительное - поэтому мне интересно, почему это будет недопустимый формат?

Кто-нибудь еще испытывал это?

1 Ответ

0 голосов
/ 23 июля 2013

Я думаю, что следующая ссылка дает ответ: http://developers.facebook.com/docs/authentication/#authenticating-users-in-a-web-application

Сначала вам нужно позвонить https://graph.facebook.com/oauth/authorize с вашим client_id и redirect_uri.Затем он перенаправит вас обратно к redirect_uri с кодом проверки в строке запроса, который вы можете передать своему вызову https://graph.facebook.com/oauth/access_token (через параметр кода) для обмена на токен доступа oAuth.

Удачи!:)

...