heroku - Phoenix + Ueberauth + 谷歌 + Heroku : internal server error

标签 heroku elixir phoenix-framework google-authentication ueberauth

我对 Elixir 和 Phoenix 还比较陌生(这可能是我不知道发生了什么的原因)。

我正在尝试使用 Google 身份验证在 Phoenix 应用程序上设置 Ueberauth。

我遵循了示例应用程序 https://github.com/ueberauth/ueberauth_example尽我所能。

我为 Heroku 准备了应用程序,就像 Phoenix 文档所说的那样。主页正确显示。当我单击按钮开始身份验证过程时,我会向 Google 询问,Google 会询问我是否确实要进行身份验证。当我单击"is"时,我收到内部服务器错误,但我真的不知道发生了什么。

这是我在日志中的内容:

2016-03-24T04:02:14.429507+00:00 app[web.1]: 04:02:14.429 [error] #PID<0.364.0> running GreatStrides.Endpoint terminated

2016-03-24T04:02:14.429520+00:00 app[web.1]: Server: MYHEROKUAPP:80 (http)

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

2016-03-24T04:02:14.429522+00:00 app[web.1]: ** (exit) exited 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, nil, nil, true, :hackney_pool, 5000, false, 5, false, 5, nil, nil, nil, :undefined, :start, nil, :normal, false, 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

这是怎么回事?

最佳答案

这应该是一条评论,但太长了。

还有其他错误吗?因为这看起来不完整。

当 Elixir 应用程序出现问题时,监督树会确保遇到错误的所有进程都会终止。这就是为什么您可以看到第一行 GreatStrides.Endpoint 终止

第二行和第三行只是一个普通的日志。

第四行是调用 gen_server 时发生的错误。它使用所有三个参数打印函数调用:服务器、请求、超时。您可以检查参数是否正确,但这些是哈克尼客户记录的一些内部结构。 GenServer 客户端只是无限期地等待答案 - 不会出现任何问题。

这意味着 GenServer 内部应该有另一个崩溃报告。它可以与前一个类似。在那里你应该能够找到真正的原因。如果 GenServer 在工作时崩溃,所有等待应答的客户端都会收到通知,它已退出

编辑:@Trevoke 编辑后

问题是 hackney gen_server 没有运行,这导致了错误。检查 Application.loaded_applications 证明 hackney 应用程序根本没有运行,需要将其添加到 mix 中的 applications 部分。前

关于heroku - Phoenix + Ueberauth + 谷歌 + Heroku : internal server error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36193141/

相关文章:

ubuntu - 如何在基于 Ubuntu 的 linux 上使用 erlangs GUI 调试器调试 Elixir?

elixir - 为什么 Phoenix (ecto/Postgresx) 在开发中无法连接

node.js - NodeJS 中的 Heroku 'cannot find module zlib'

node.js - 将 Heroku 插件 mongolab 与 Node.js 结合使用

elixir - 如何在 Phoenix 应用程序启动时预填充数据库?

用于关联模型列表的 Elixir Phoenix 助手

elixir - 数组模型数据类型的Phoenix表单字段

Heroku 时钟进程 : how to ensure jobs weren't skipped?

ubuntu - heroku ECONNREFUSED : connect ECONNREFUSED for all run command

elixir - 什么是 Elixir Plug?