问题标签 [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 投票
0 回答
223 浏览

cookies - Guardian.Plug.sign_in/2 到会话存储而不是 cookie?

在身份验证期间,Guardian.Plug.sign_in(conn, user) 默认将会话令牌存储在 cookie 中。假设我有一个字段告诉用户是否想要被记住。如果没有,我如何将会话令牌存储在会话存储中(因此它在关闭浏览器窗口时被丢弃)而不是 cookie?

0 投票
2 回答
495 浏览

oauth - 使用 Ueberauth 来自 Github 的错误 404

我被重定向到的页面:

我被重定向到的页面

链接如下所示:

https://github.com/login/oauth/authorize?client_id=&redirect_uri=http%3A%2F%2Flocalhost%3A4000%2Fauth%2Fgithub%2Fcallback&response_type=code&scope=user%2Cpublic_repo

我的终端的输出,好像是代码302

我的终端的输出,好像是代码 <code>302</code>

我正在使用 Ueberauth、Elixir、Phoenix。

0 投票
2 回答
2249 浏览

elixir - 监护人的问题 - 如何在登录时生成访问和刷新令牌

为了使 JWT 失效,人们使用两种方法之一

  • 黑名单/白名单(带有 Guardian_db)。
  • 一个刷新令牌(允许重新生成访问令牌)和一个即将过期的访问令牌。

我不想在我的项目中使用 Guardian_db。那么,我如何在登录端点中生成访问令牌和刷新令牌?

我的代码是:

文件 mix.ex

文件 config.exs

文件 aut_access_pipeline.ex

文件 auth_controller.ex

文件监护人.ex

使用此代码,我有一个有效的访问令牌,但我不知道如何生成刷新令牌以在他过期时重新生成/刷新访问令牌......

有人可以帮忙吗?

0 投票
2 回答
288 浏览

elixir - 如何在 Elixir 中为 Uberauth 添加状态参数

在 oAuth 过程中,最好设置状态参数来授权 url 以确保安全。当我检查 Überauth Shopify https://github.com/kodehort/ueberauth_shopify/blob/master/lib/ueberauth/strategy/shopify.ex#L88时,它被发送到shopify。

但我不明白我需要如何在我的 Phoenix 应用程序中设置这个状态参数,以便 Shopify 得到它。有什么建议么?

0 投票
0 回答
38 浏览

elixir - 是否可以将 Ueberauth 配置为使用 Github Enterprise 登录?

我已经尝试了使用 Ueberauth 连接到 Github 的基本配置,但我认为我能够找到一个配置来将 OAuth 端点调整到我的 Github Enterprise 实例,并且文档没有提到如何做到这一点。我可以看到硬编码到模块中的端点配置,但我不确定在不重写整个策略的情况下连接到我的 Enterprise 实例需要做什么。

如何配置 Ueberauth 以使用我的 GitHub Enterprise 实例而不是 Guthub.com?

0 投票
0 回答
35 浏览

elixir - 为什么我会收到此错误?预计在“config nil, Ueberauth.Strategy.Auth0.OAuth”下找到设置,结果为零。检查您的 config.exs

我正在关注本教程https://auth0.com/blog/elixir-and-phoenix-tutorial-build-an-authenticated-app/#Our-Phoenix-application-skeleton一切正常,直到我尝试运行它启用身份验证。现在我不断收到此错误:

** (RuntimeError) Expected to find settings under `config nil, Ueberauth.Strategy.Auth0.OAuth`, got nil. Check your config.exs.

这是我的 config.exs ...

我也有...

在我的 config/dev.exs 文件中。

我意识到本教程已经很老了,但我找不到更新的东西。我查看了 Ueberauth_auth0 文档,他们提到您需要在启动应用程序之前启动 ueberauth_auth0。我对 Elixir/Phoenix 很陌生,我不确定这是否是问题或如何解决?根据教程、文档和 Ueberauth 示例应用程序,这似乎是我唯一缺少的东西。

有任何想法吗?

0 投票
1 回答
324 浏览

elixir - 使用 Ueberauth 不断收到 Cross-Site Request Forgery 错误

我正在使用 Phoenix 1.3 版和 UeberAuth "~> 0.6"。我目前收到一个我认为不应该发生的 CRSF 错误,但我很可能会出错。

在我的 router.ex 文件中,我有以下内容:

在我的控制器文件中,回调如下:

在浏览器中,我确实被重定向到 GitHub 进行登录。但是,我得到以下响应:

这是预期的吗?看起来我实际上已经登录了,因为如果我在浏览器中尝试同样的事情,我不必登录到 GitHub。但是,还有一个 CRSF 故障正在发生,我不确定如何处理,并且无法从 conn.assigns 变量中获取我需要的信息。

任何帮助或建议将不胜感激!

0 投票
1 回答
29 浏览

elixir - Elixir Phoenix 1.6 - 尝试将令牌传递给浏览器,函数 nil.id/0 未定义或私有

我正在开发 Phoenix 1.6 应用程序。我通过 GitHub 使用 Ueberauth 进行身份验证,它正在工作。我设置了一个发布主题和评论的频道,经过身份验证的用户可以这样做。接下来,我尝试添加一个用户令牌以在频道中使用。我按照使用mix phx.new.socket User创建的样板代码中的说明进行操作。在user_socket.js文件中,有在模板中创建令牌的说明,它有效。令牌在连接函数的user_socket.ex中进行验证。我在router.ex中创建了一个新插件put_user_token以将令牌添加到conn,这也有效。但是,我对插件中的逻辑有疑问。这是我的代码:

只要我登录就可以使用。问题是当我注销并尝试重新登录时。插件中 if 语句的样板代码是:

我的代码不同,因为当前用户被定义为user,其值等于数据库中用户记录的 id。我认为问题在于,在设置 Ueberauth 时,我创建了另一个插件SetUser,它位于put_user_token插件之前。这是 SetUser 的调用函数:

似乎正在发生的事情是,在我注销后,应用程序重定向到主页,这导致插件执行,并且conn.assigns.user的值设置为nil。然后发生错误,我无法重新登录。

我需要想出一种方法让put_user_token插件中的if语句能够处理nil值。我尝试了 is_integer(conn.assigns.user)和其他一些比较,但如果存在nil值,则应用程序崩溃。