我在长生不老药和凤凰城相对较新(这可能是我不知道发生了什么的原因)。
我正在尝试在Phoenix应用程序上使用谷歌身份验证来设置Ueberauth。
我关注了示例应用程序https://github.com/ueberauth/ueberauth_example尽我所能忠实。
我像凤凰城的医生说的那样为Heroku准备了这个应用程序。主页显示正确。当我点击按钮开始身份验证过程时,我会到达谷歌,谷歌会问我是否真的想进行身份验证。当我点击"是"时,我得到了一个内部服务器错误,我真的不知道它发生了什么
以下是我在日志中的内容:
2016-03-24T04:02:14.429507+00:0 app[web.1]:04:02:14.429[error]#PID<0.364.0>运行GreatStrides。端点终止
2016-03-24T04:02:14.429520+00:0 app[web.1]:服务器:MYHEROKUAPP:80(http)
2016-03-24T04:02:14.429521+00:0 app[web.1]:请求:GET/auth/google/recallback?代码=ACODEGOESHERE
2016-03-24T04:02:14.429522+000:00 app[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",[],nil,nil
2016-03-24T11:54:59.195968+00:00 app[web.1]:**(退出)无进程
这是怎么回事?
这应该是一条注释,但太长了。
你还有其他错误吗?因为这看起来不完整。
当Elixir应用程序出现错误时,监督树会确保所有遇到错误的进程都会终止。这就是为什么您可以看到第一行GreatStrides.Endpoint terminated
。
第二行和第三行只是普通日志。
第四行是调用gen_server
时出错。它打印带有所有三个参数的函数调用:server, request, timeout
。如果论点是正确的,您可以检查它们,但这些都是hackneys客户端记录的一些内部内容。GenServer客户端只需要在这里等待答案无限长的时间——应该不会出错。
这意味着GenServer内部应该会有另一个崩溃报告。它可以与前一个类似。在那里你应该能够找到真正的原因。如果GenServer在执行其工作时崩溃,则会通知所有等待应答的客户端它是exited
。
编辑:经过@Trevoke 编辑
问题是hackney
gen_server没有运行,这导致了错误。与Application.loaded_applications
的检查证明hackney
应用程序根本没有运行,需要将其添加到mix.exs
中的applications
部分。