问题标签 [ueberauth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
339 浏览

heroku - Phoenix + Ueberauth + Google + Heroku:内部服务器错误

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

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

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

就像 Phoenix 文档说的那样,我为 Heroku 准备了应用程序。主页正确显示。当我单击按钮开始身份验证过程时,我得到了谷歌和谷歌询问我是否要进行身份验证。当我单击是时,我得到一个内部服务器错误,我真的不知道它发生了什么。

这是我在日志中的内容:

2016-03-24T04:02:14.429507+00:00 app[web.1]: 04:02:14.429 [error] #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 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) 无进程

这里发生了什么?

0 投票
1 回答
2659 浏览

elixir - 如何在 Phoenix 框架中使用 Ueberauth 和 Guardian 对用户进行身份验证

是否有任何可用的教程或帮助可供我在 Phoenix 框架中使用 Ueberauth 和 Guardian 的身份验证用户使用。

我看过以下帖子,但主要是关于瘾君子和护照库

如何在phoenix中实现用户认证

0 投票
1 回答
238 浏览

elixir - 您如何为 ueberauth 身份进行单独的注册回调

ueberauth_identity有一个登录和注册的单一回调示例,但这会导致错误处理。有没有办法进行单独的注册回调?

0 投票
1 回答
321 浏览

phoenix-framework - Ueberauth 插件无法分配 auth 和 conn 失败

我在我正在构建的库中使用Ueberauth简化在 Phoenix 中添加身份验证。

我已经设置了一个示例 repo,您​​可以在v2 分支中看到代码

我现在正在尝试实施 Ueberauth Identity 策略。看来,虽然我已将 Ueberauth 插件添加到控制器中ueberauth_failureueberauth_auth但 conn 的assigns. 相反,conn.assigns%{}

我期待这个示例 curl 请求:

curl -i -X POST localhost:4000/identity/callback -d '{"user": {"email": "test@example.com", "password": "password"}}'

至少其中一个(ueberauth_failureueberauth_auth)将被设置?

Ueberauth 在这里配置:https://github.com/britton-jb/test_sentinel_example/blob/master/config/config.exs#L58

执行该策略的控制器是https://github.com/britton-jb/sentinel/blob/v2/lib/sentinel/controllers/json/session_controller.ex

控制器和路由暴露在https://github.com/britton-jb/test_sentinel_example/blob/master/web/router.ex#L26

通过这个宏:https://github.com/britton-jb/sentinel/blob/v2/lib/sentinel.ex#L50

0 投票
0 回答
309 浏览

token - 如何让 Guardian 在第二个应用程序 system2system 中检测令牌?

我无法让应用程序找到另一个应用程序的生成令牌。两个应用程序(App1 和 App2)都存在于一个保护伞中,并且共享相同的配置和密钥。

我在会话中设置了用户身份验证,可以通过以下方式找到 Guardian 令牌:

令牌位于生成应用程序“App1”中。但是,当我在“App2”中使用相同的密钥实现相同的 Guardian 配置时,App2 找不到 App1 生成的令牌。

我的配置:

App2 序列化程序被 App1 中的 App1 序列化程序替换。

(我正在使用当前的 Guardian,0.14;与 Phoenix 1.2.1 一起使用。)

编辑:此外,App1 和 App2 应该稍后在不同的服务器上运行。

  • 如何让 App2 检测和使用 App1 生成的令牌?
  • 我需要连接哪些(附加)部件才能正常工作?
0 投票
1 回答
785 浏览

google-oauth - 如何通过 ueberauth_google 提交 prompt=consent

当用户已经同意应用程序时(例如,当用户在初次尝试期间放弃创建帐户,然后再次尝试),除非prompt=consent通过,否则 Google 不会再次提示同意(请参阅文档)。在没有提示同意的情况下,Google 不会向调用服务器提供刷新令牌。如果没有刷新令牌,服务器就无法与用户的资源交互(例如代表用户发送电子邮件)。

ueberauth_google有一个设置机制approval_prompt,但这是一个不同的参数prompt。有没有办法prompt=consent使用 ueberauth_google 发送?(注意,如果我添加%26prompt%3Dconsent到 ueberauth_google 发送给我的 url,那么 Google 会提示我并且我们的服务器会收到刷新令牌。)

0 投票
2 回答
316 浏览

authentication - 两个根页面;一种用于未经身份验证的用户,一种用于经过身份验证的用户

我想知道如何使用 Phoenix 在同一个根“/”中实现两个页面?一种用于未经身份验证的用户,另一种用于经过身份验证的用户。发生这种情况的用例示例是 LinkedIn 和 Facebook,其中登录页面在“/”上提供,应用程序在登录后在“/”上提供。

我使用 Guardian 进行身份验证,并将我的路由器设置为:

FrontController 服务于未经身份验证的用户可访问的页面(例如登录页面),而 ApplicationController 服务于实际应用程序。

当 ApplicationController 提供“/”而不是“/page”时,会抛出“此子句无法匹配,因为第 1 行的前一个子句始终匹配”错误。

我想象使用 if 语句和一个控制器来为两个页面提供服务,不幸的是我找不到有关如何实施这种策略的文档。

0 投票
2 回答
545 浏览

elixir - 文件 web/controllers/auth_controller.ex 未定义函数插件/1 上的编译错误

神秘的错误信息

在尝试ueberauth为我们的项目实施时,我们遇到了以前从未见过的错误消息。(请注意,这并非特定ueberauth于此错误,在任何未能包含控制器“助手”的控制器中都会出现

确切的错误信息是:

代码快照:https ://github.com/dwyl/auth/pull/9/commits/e2550c558832ff9c4a442b570224a1ccacbfdb02

回答:

忘记:controller在我们的控制器文件中包含助手...

感谢 Sam Houston 查看代码并发现如何修复它。 https://github.com/dwyl/auth/pull/9/commits/823f7d79561f733a9d131b26a3f6a4d74da59842

case向某人发布此问题 + 答案会else在他们的 Phoenix 项目中看到此错误消息,并且在谷歌搜索时找不到答案。

0 投票
4 回答
1795 浏览

oauth - Elixir Phoenix 设置和使用环境变量

我有一个凤凰应用程序正在对 github 进行 OAuth 调用。我想将我的密钥存储为环境变量,这样我就可以将它们排除在版本控制之外。

我创建了一个名为.env我定义我的私钥的文件:

我试图在我的文件中获取我的私钥config.exs,该文件负责使用System.Config.

config :ueberauth, Ueberauth.Strategy.Github.OAuth, client_id: System.get_env("GITHUB_CLIENT_ID"), client_secret: System.get_env("GITHUB_SECRET_ID")

长话短说,我的控制器几乎可以与 github 握手以获取请求。当我向 github 发出请求以授权我的应用程序时http://localhost:4000/auth/github,我几乎可以发出请求,并且看到来自 github 的 404 页面。我注意到网址没有client_id

我访问回调的路由器是

我得到的是没有value https://github.com/login/oauth/authorize的 URL ?client_id= &redirect_uri=http%3A%2F%2Flocalhost%3A4000%2Fauth%2Fgithub%2Fcallback&response_type=code&scope=user%2Cpublic_repo`

如果我不使用环境变量config.exs,而是使用字符串 value,则请求会正常工作。

如何在 Phoenix 中使用环境变量?

0 投票
0 回答
231 浏览

elixir - 模块:unicode_util 不可用 Phoenix/elixir

我正在尝试使用Ueberauth库进行 GitHub 登录。在登录功能中,我收到一条错误消息

“功能:unicode_util.lowercase/1 未定义(模块:unicode_util 不可用)”

我用过的代码

在此处输入图像描述