Феникс + 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,

Другие вопросы по тегам