问题标签 [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.
cookies - Guardian.Plug.sign_in/2 到会话存储而不是 cookie?
在身份验证期间,Guardian.Plug.sign_in(conn, user) 默认将会话令牌存储在 cookie 中。假设我有一个字段告诉用户是否想要被记住。如果没有,我如何将会话令牌存储在会话存储中(因此它在关闭浏览器窗口时被丢弃)而不是 cookie?
oauth - 使用 Ueberauth 来自 Github 的错误 404
我被重定向到的页面:
链接如下所示:
我的终端的输出,好像是代码302
我正在使用 Ueberauth、Elixir、Phoenix。
elixir - 监护人的问题 - 如何在登录时生成访问和刷新令牌
为了使 JWT 失效,人们使用两种方法之一
- 黑名单/白名单(带有 Guardian_db)。
- 一个刷新令牌(允许重新生成访问令牌)和一个即将过期的访问令牌。
我不想在我的项目中使用 Guardian_db。那么,我如何在登录端点中生成访问令牌和刷新令牌?
我的代码是:
文件 mix.ex
文件 config.exs
文件 aut_access_pipeline.ex
文件 auth_controller.ex
文件监护人.ex
使用此代码,我有一个有效的访问令牌,但我不知道如何生成刷新令牌以在他过期时重新生成/刷新访问令牌......
有人可以帮忙吗?
elixir - 如何在 Elixir 中为 Uberauth 添加状态参数
在 oAuth 过程中,最好设置状态参数来授权 url 以确保安全。当我检查 Überauth Shopify https://github.com/kodehort/ueberauth_shopify/blob/master/lib/ueberauth/strategy/shopify.ex#L88时,它被发送到shopify。
但我不明白我需要如何在我的 Phoenix 应用程序中设置这个状态参数,以便 Shopify 得到它。有什么建议么?
elixir - 是否可以将 Ueberauth 配置为使用 Github Enterprise 登录?
我已经尝试了使用 Ueberauth 连接到 Github 的基本配置,但我认为我能够找到一个配置来将 OAuth 端点调整到我的 Github Enterprise 实例,并且文档没有提到如何做到这一点。我可以看到硬编码到模块中的端点配置,但我不确定在不重写整个策略的情况下连接到我的 Enterprise 实例需要做什么。
如何配置 Ueberauth 以使用我的 GitHub Enterprise 实例而不是 Guthub.com?
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 示例应用程序,这似乎是我唯一缺少的东西。
有任何想法吗?
elixir - 使用 Ueberauth 不断收到 Cross-Site Request Forgery 错误
我正在使用 Phoenix 1.3 版和 UeberAuth "~> 0.6"。我目前收到一个我认为不应该发生的 CRSF 错误,但我很可能会出错。
在我的 router.ex 文件中,我有以下内容:
在我的控制器文件中,回调如下:
在浏览器中,我确实被重定向到 GitHub 进行登录。但是,我得到以下响应:
这是预期的吗?看起来我实际上已经登录了,因为如果我在浏览器中尝试同样的事情,我不必登录到 GitHub。但是,还有一个 CRSF 故障正在发生,我不确定如何处理,并且无法从 conn.assigns 变量中获取我需要的信息。
任何帮助或建议将不胜感激!
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值,则应用程序崩溃。