3

我在Elixir和Phoenix比較新(這可能是我不知道發生了什麼事的原因)。Phoenix + Ueberauth + Google + Heroku:內部服務器錯誤

我試圖在Google認證的鳳凰應用上設置Ueberauth。

我按照我的想法忠實地跟蹤了示例應用程序https://github.com/ueberauth/ueberauth_example

我準備了Heroku的應用程序,就像Phoenix文檔所說的那樣。主頁正確顯示。當我點擊我的按鈕開始驗證過程時,Google和Google會問我是否需要驗證身份。當我點擊是時,我得到一個內部服務器錯誤,我真的不知道它發生了什麼。

下面是我在日誌中:

2016-03-24T04:02:14.429507 + 00:00的應用[web.1]:04:02:14.429 [錯誤] #PID < 0.364 0.0>運行GreatStrides.Endpoint終止

2016-03-24T04:02:14.429520 + 00:00應用程式[web.1]:服務器:MYHEROKUAPP:80(HTTP)

2016-03-24T04: 02:14.429521 + 00:00 app [web.1]:請求:GET /auth/google/callback?code = ACODEGOESHERE

2016-03-24T04:02:14.429522 + 00:00 app [web.1]:**(exit)exiting in :: gen_server.call(:hackney_manager,{:new_request,#PID < 0.364.0>, #Reference < 0.0.1.2373>,{:client,:undefined,{:metrics_ng,:metrics_dummy},:hackney_ssl_transport,'accounts.google.com',443,「accounts.google.com」,[],零,零,nil,true,:hackney_pool,5000,false,5,false,5,nil,nil,nil,:undefined,:start,nil,:normal,false,false,:undefined,false,nil,:waiting ,nil,4096,「」,[],:undefined,nil,nil,nil,nil,:undefined,nil}},::infinity)

2016-03-24T11:54:59.195968 + 00:00 app [web.1]:**(EXIT)no process

這是怎麼回事?

回答

2

這應該是一個評論,但它太長了。

你還有其他錯誤嗎?因爲這看起來不完整。

當Elixir應用程序出現問題時,監督樹會確保遇到錯誤的所有進程死亡。這就是爲什麼你可以看到第一行GreatStrides.Endpoint terminated

二三線只是一個正常的日誌。

第四行是錯誤調用gen_server。它使用所有三個參數打印函數調用:server, request, timeout。你可以檢查參數是否正確,但這些都是hackneys客戶端記錄的內部結構。 GenServer客戶端只是在這裏等待無限次的答案 - 沒有任何問題。

這意味着應該有GenServer內部的另一個崩潰報告。它可以類似於前一個。在那裏你應該能夠找到真正的原因。如果GenServer在執行其工作時崩潰,則所有等待答案的客戶端都會收到通知,其中包括exited

編輯:由@Trevoke

經過編輯的問題是,hackney gen_server未運行,這導致錯誤。使用Application.loaded_applications進行的檢查證明,hackney應用程序根本沒有運行,需要將其添加到applications部分的mix.exs

+0

這是問題的一部分。這就是我看到的所有日誌。該行恰好在「GET/auth/google/callback」之前。我不知道如何增加日誌記錄,我也不知道如何嘗試和本地測試。 – Trevoke

+0

好的,還有一行。我添加了它。它說'(退出)沒有進程「 – Trevoke

+0

這意味着':hackney_manager'進程從來沒有存在過,它是否啓動?你能檢查'Application.loaded_applications'嗎?是否存在':hackney'?當你鍵入'Application .start(:hackney)'? – tkowal