Феникс + Ueberauth + Google + Heroku: внутренняя ошибка сервера
Я относительно новичок в Эликсире и Фениксе (возможно, поэтому я не знаю, что происходит).
Я пытаюсь настроить Ueberauth в приложении Phoenix с аутентификацией Google.
Я следовал за примером приложения https://github.com/ueberauth/ueberauth_example настолько точно, насколько я мог понять.
Я подготовил приложение для Heroku, как говорят доктора Феникса. Домашняя страница отображается правильно. Когда я нажимаю кнопку, чтобы начать процесс аутентификации, я получаю информацию о том, что Google и Google спрашивают меня, хочу ли я пройти аутентификацию. Когда я нажимаю "да", я получаю внутреннюю ошибку сервера и не знаю, что с ней происходит.
Вот что у меня в логах:
2016-03-24T04: 02: 14.429507 + 00: 00 приложение [web.1]: 04:02:14.429 [ошибка] #PID<0.364.0> выполнение GreatStrides.Endpoint прекращено
2016-03-24T04:02:14.429520+00:00 приложение [web.1]: Сервер: MYHEROKUAPP: 80 (http)
2016-03-24T04: 02: 14.429521 + 00: 00 приложение [web.1]: Запрос: GET /auth/google/callback? Code = ACODEGOESHERE
2016-03-24T04: 02: 14.429522 + 00: 00 приложение [web.1]: ** (выход) завершено в::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", [], ноль, ноль, ноль, true,:hackney_pool, 5000, false, 5, false, 5, nil, nil, nil,:undefined,:start, nil,:normal, false, false, false,:undefined, false, nil,: ожидание, nil, 4096, "", [],:undefined, ноль, ноль, ноль, ноль,: undefined, ноль}},: бесконечность)
2016-03-24T11: 54: 59.195968 + 00:00 приложение [web.1]: ** (ВЫХОД) без процесса
Что тут происходит?
1 ответ
Это должен быть комментарий, но это было слишком долго.
У вас есть другие ошибки? Потому что это выглядит неполным.
Когда что-то не так в приложении Elixir, дерево контроля гарантирует, что все процессы, которые столкнулись с ошибкой, умирают. Вот почему вы можете увидеть первую строку GreatStrides.Endpoint terminated
,
Вторая и третья строка - просто обычный журнал.
Четвертая строка - ошибка вызова gen_server
, Он печатает вызов функции со всеми тремя аргументами: server, request, timeout
, Вы можете проверить аргументы, если они верны, но это некоторые из записей клиента. Клиент GenServer просто ждет ответа здесь бесконечное количество времени - ничто не должно пойти не так.
Это означает, что внутри GenServer должен быть еще один отчет о сбое. Это может быть похоже на предыдущий. Там вы должны быть в состоянии найти фактическую причину. Если во время работы GenServer происходит сбой, все клиенты, ожидающие ответа, получают уведомление о том, что он exited
,
РЕДАКТИРОВАТЬ: после редактирования @Trevoke
Проблема заключалась в том, что hackney
gen_server не был запущен, и это вызвало ошибку. Проверка с Application.loaded_applications
доказал, что hackney
приложение вообще не работает и его нужно добавить в applications
раздел в mix.exs
,