Po starając się „zalogować się z Google”, widzę ten błąd w dziennikach:Błąd devise/omniauth: jak to debugować?
Processing by Users::OmniauthCallbacksController#failure as HTML
widzę wszystkie dane z Google są wysyłane za pośrednictwem adresu URL (w dziennikach), w tym użytkownikowi e-mail i nazwisko. Co może pójść nie tak? Moje wywołania zwrotne nie są nawet wykonywane. Zostaję przekierowany tylko na stronę sign_in mojej witryny.
I jestem prawie pewien, że wszystko jest poprawnie skonfigurowane, ponieważ działało to dobrze kilka tygodni temu. Nie sądzę, żebym coś zmieniła. Logowanie na Facebooku nadal działa dobrze.
Jakieś pomysły dotyczące debugowania tego błędu? W dziennikach nie ma nic oprócz długich adresów URL pełnych parametrów i wartości. Tylko komunikaty INFO. Ten zamieszczony powyżej jest jedynym, który powiedział coś o awarii.
UPDATE
dodałem 'porażka' metody kontrolera
def failure
render :text => params.inspect
end
Który zatrzymał przekierowań i drukowane to:
{}
adres URL został w ten sposób:
/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
Chodzi o to, że wszystkie dane, których potrzebuję, znajdują się w adresie URL, ale dev/omniauth go nie chwyta (i widocznie dlatego nazywa się metodę "niepowodzenia" zamiast moich wywołań zwrotnych). Nie wiem, czy powinien być dostępny za pośrednictwem tablicy "params", czy co.
Jestem również zaintrygowany częścią ?_method=post
, ponieważ wszystkie żądania do mojej witryny są żądaniami GET. Może to po prostu oznacza, że żądanie wykonane przez omniauth do google było POST.
Jakieś myśli?
Powinieneś również poinformować ludzi, że będą musieli zainstalować gem pry do tego do pracy https://github.com/pry/pry – Will