Сбой Devise/Omniauth:Как его отладить?

После попытки «войти через Google» я вижу эту ошибку в логах:

Processing by Users::OmniauthCallbacksController#failure as HTML

Я вижу все данные от google, отправляемые через URL (в логах), включая адрес электронной почты и имя пользователя. Так что же может пойти не так? Мои обратные вызовы даже не выполняются. Меня перенаправляют только на страницу_входа моего сайта.

И я почти уверен, что все настроено правильно, потому что несколько недель назад все работало нормально. Не думаю, что я что-то изменил. Вход в Facebook по-прежнему работает нормально.

Есть идеи, как устранить этот сбой? В журналах нет ничего, кроме этих длинных URL-адресов, полных параметров и значений. Только сообщения INFO. Сообщение выше - единственное, что сказало что-то о неудаче.

ОБНОВЛЕНИЕ

Я добавил в контроллер метод 'failure'

def failure
  render :text => params.inspect
end

Который останавливал перенаправления и печатал это:

{}

URL-адрес был таким:

/users/auth/google/callback?_method=post&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2012-04-16T12%3A25%3A49Z_v1fNngSQJaHBQ&openid.return_to=http%3A%2F%2Fdev.myapp.me%3A3000%2Fusers%2Fauth%2Fgoogle%2Fcallback%3F_method%3Dpost&openid.assoc_handle=AMlYA9Urw_lYamPphTSdQ9a6DU0Ez0y5RaDDM78qPL7Xgm77nMpJiB85&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.ext5%2Cext1.value.ext5%2Cext1.type.ext8%2Cext1.value.ext8%2Cext1.type.ext2%2Cext1.value.ext2&openid.sig=2FPjo7U1e%2Fde248XpUgjQLduNAM%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawk1F5U6x_-kJnydjoww5haU41tquh1Zl2c&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawk1F5U6x_-kJnydjoww5haU41tquh1Zl2c&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.ext5=http%3A%2F%2Faxschema.org%2FnamePerson%2Ffirst&openid.ext1.value.ext5=Some_User&openid.ext1.type.ext8=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.ext8=some_email%40gmail.com&openid.ext1.type.ext2=http%3A%2F%2Faxschema.org%2FnamePerson%2Flast&openid.ext1.value.ext2=Some_User

Итак, дело в том, что все данные, которые мне нужны, находятся в URL-адрес, но devise/omniauth не получает его (и, по-видимому, поэтому вызывает метод 'failure' вместо моих обратных вызовов). Я не знаю, должен ли он быть доступен через массив params или как.

Я также заинтригован частью ?_method=post, потому что все запросы к моему сайту являются запросами GET. Может быть, это просто означает, что запрос, сделанный omniauth в Google, был POST.

Есть мысли?

12
задан HappyDeveloper 16 April 2012 в 12:37
поделиться