試圖「與谷歌登錄」後,我看到這個錯誤在日誌中:設計/ Omniauth失敗:如何調試?
Processing by Users::OmniauthCallbacksController#failure as HTML
我可以從谷歌看到所有的數據通過URL發送(在日誌),包括用戶電子郵件和名稱。那麼會出現什麼問題呢?我的回調甚至沒有被執行。我只會重定向到我網站的sign_in頁面。
而且我非常確定所有的配置都是正確的,因爲幾星期前它工作正常。我不認爲我改變了任何事情。 Facebook登錄仍然正常。
有關如何調試此故障的任何想法?日誌中沒有別的東西,除了那些長滿URL和參數的值。只有INFO消息。上面提到的是唯一一個說失敗的人。
UPDATE
我添加了一個 '失敗' 方法給控制器
def failure
render :text => params.inspect
end
哪停止重定向,並打印該:
{}
的網址是這樣的:
/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並沒有抓住它(顯然這就是爲什麼它調用'失敗'方法而不是我的回調)。我不知道應該通過'params'數組還是可以訪問它。
我也對?_method=post
部分感興趣,因爲所有對我的網站的請求都是GET請求。也許這只是意味着omniauth對谷歌所做的請求是POST。
有什麼想法?
你也應該讓人們知道,他們將需要安裝撬寶石這個工作https://github.com/pry/pry – Will 2012-10-24 05:44:59