问题标签 [ruby-openid]

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 回答
855 浏览

ruby-on-rails - OpenID 身份验证进入奇怪的错误循环(Ruby on Rails、ruby-openid、open_id_authentication)

我在我的网站上使用 OpenID 已经有一段时间了,一切正常。但是,最近我在错误日志中看到了一些奇怪的错误。显然,对用户来说一切正常,他们可以登录。但是,在后台,OpenID 库似乎进入了导致一堆错误的循环。

此外,仅当我不在 localhost:3000 上访问时才会发生如果我通过我的 DynDns 名称隧道请求,我会收到错误消息。如果我来自 localhost:3000,什么都没有

底部是日志的片段。主要需要注意的是前几行:

这在初始 OpenID 请求之后的几秒钟内出现,并立即导致以下错误和堆栈跟踪。这会持续几次,然后停止。

有谁知道怎么回事?

0 投票
5 回答
3345 浏览

ruby-on-rails - Ruby-OpenID:需要来自 OpenID 提供商的电子邮件地址

我正在使用authlogic-example-app并且当我注册用户时,我无法从 OpenID 提供商(在我的情况下:谷歌和雅虎)获取电子邮件地址。我得到一个空的回复而不是一个电子邮件地址(检查下面代码中的评论)。

这就是我的用户模型的样子(其他一切看起来像上面提到的 authlogic-example-app 的“with_openid”分支)。除了丢失的“电子邮件”之外,openid-authentication-process 按预期工作:

知道如何解决这个问题吗?在使用authlogic之前这里有人做过吗?甚至更好:你有一个有效的例子吗?

更新:我检查了Google Account Authentication API并将authlogic提交的请求(使用ruby​​-openid-gemopenid-authentication-plugin)与Google Account Authentication API 文档上的示例请求进行了比较:


Google 验证和获取电子邮件地址的示例请求


我的申请提交的请求

在调试整个设置时,我发现openid-authentication-plugin在从 openid 提供者收到的响应中从未收到电子邮件,这至少解释了为什么registration我的用户模型中的哈希为空......

更新:如果您正在使用 authlogic 和 openid,请不要忘记查看有关此主题的最新 railscast

0 投票
2 回答
561 浏览

ruby-on-rails - 使用新的 openid 登录 authlogic 创建一个新用户

我已经在 Rails 站点中实现了 authlogic,并且正在尝试让 openid 正常工作。到目前为止,只要您有一个现有的帐户,您就可以正常登录,但如果您没有,则不能登录。如果 identity_url 不在数据库中,我希望能够自动创建一个新帐户。

问题是我还需要存储一些额外的信息。如果用户是第一次使用他们的 openid 登录,我想请他们在创建帐户之前填写基本信息(姓名、电子邮件)。

我已经尝试了几种方法,但似乎没有任何效果。

提前感谢您的任何意见!

0 投票
1 回答
644 浏览

ruby - 使用 WebFinger 和 OpenID 登录

我正在搞乱 WebFinger 并尝试创建一个小型 Rails 应用程序,使用户能够使用 WebFinger 帐户登录。我可以成功地找到自己,然后我得到一个带有以下片段的 XRD 文件:

对我来说,上面写着“我在 url 上有一个 OpenID 2.0 登录名:http://www.google.com/profiles/{redacted}”。但是当我尝试使用该 URL 登录时,我收到以下错误

OpenID::DiscoveryFailure (Failed to fetch identity URL http://www.google.com/profiles/{redacted} : Error encountered in redirect from http://www.google.com/profiles/{redacted}: Error fetching /profiles/{Redacted}: Connection refused - connect(2)):

当我用“ https://www.google.com/accounts/o8/id ”替换个人资料 URL 时,登录效果很好。

这是我正在使用的代码(我使用 RedFinger 作为插件,以及 JanRain 的 ruby​​-openid,在没有 gem 的情况下安装)

我可以使用从 WebFinger 收到的 URL 来使用 OpenID 登录吗?

0 投票
0 回答
164 浏览

ruby-on-rails - Rails:使用 ruby​​-openid 的简单捆绑器问题

我刚刚安装了 ruby​​-openid gem,然后通过输入捆绑它

在宝石文件中。然后我开始捆绑安装和捆绑锁定。到目前为止一切正常。

但是我现在如何访问 ruby​​-openid 的类。

不会为我工作。它引发了一个未找到的错误。

我忘记了什么或做错了什么?

我对捆绑器和充满各种版本解决方案的互联网完全陌生,但我需要一种肯定有效的解决方案。

我很感谢任何帮助!

0 投票
1 回答
180 浏览

ruby-on-rails - Retrieving user details using openid

I am using the open_id_authentication plugin for login purpose. I am able to integrate the plugin correctly and it works well. I would like to retrieve additional values like the nickname and email of the user, which I am not able to retrieve. I am using the following code but the registration fields are empty . Am I doing something correctly here?.

0 投票
2 回答
300 浏览

ruby - ruby-openid:执行发现时未设置@socket

我对omniauth/openid 有点麻烦。

尝试进行身份验证时,我在日志中发现了这一点:

重要的是undefined method io' for nil:NilClass来自 openid/fetchers.rb,在以下代码段中:

该错误是由生成的@socket.io.peer_cert,@socket 未定义。

你们有没有人遇到过这种情况?不太清楚是什么原因。

我正在运行的版本:

  • 红宝石 1.9.3dev (2010-08-17 主干 29020) [x86_64-darwin10.4.0]
  • 红宝石-openid (2.1.8)
  • ruby-openid-apps-discovery (1.2.0)
  • 全域认证 0.2.0
0 投票
1 回答
138 浏览

ruby-on-rails - Rails3 + OpenID == mmmmmm; Rails3 + JQGrid == mmmmmmm; Rails3 + OpenID + JQGrid == BZZZT

尝试将JQuery 小部件(尤其是JQGrid)与 Rails 3 应用程序一起使用。我正在使用 ruby​​-openid 与 Google 进行身份验证,并使用了Seth Ladd 的好方法来使其正常工作。

它的作用——用于网页表单的页面视图和帖子。

但是,每当 JQGrid 执行 POST 以更新服务器上的数据时,都会发生两件事:

  1. 即使用户的浏览器已经通过登录 Google 进行了身份验证,POST 对服务器来说似乎是来自未经身份验证的,并被重定向到 OpenID 身份验证舞蹈。除了

  2. 一旦服务器发回应该启动重定向和身份验证的 401,整个辣酱玉米饼馅就停止了。通常(例如,来自表单提交的 POST 请求),浏览器会看到 401,读取随附的“在此处进行身份验证”信息,然后跳舞,返回会话设置,然后循环继续。但是从 JQuery/JQGrid ......不是那么多。

有任何想法吗?我确信我在这里遗漏了一些明显的东西,但是我有一个拉姆斯菲尔德的“未知未知数”,我不知道我遗漏了什么,更不用说如何解决它了!看起来这应该是一个长期解决的问题,嗯?

我可能会与 XSS 防御发生冲突,但如果是这样,我不知道除了* *-canning 我们已经在 OpenID 上进行的重大投资(包括已经注册和必须提供/记住密码的用户)之外的其他方法 - - 哎呀!)。

提前感谢我的专家同事。

(Rails 3.0.7、ruby-openid 2.1.8、JQGrid 3.5.3、JQuery 1.3.2,使用 Google 作为 OP,这样用户就不必输入他们的身份 URL。)

0 投票
1 回答
138 浏览

ruby-on-rails - 使用Passenger 升级到Rails 3 后,相对根导致不同的OpenID 用户令牌

我们让 gmail openid 使用 Redmine 1.3.1 (Rails 2 Mongrel) 工作了一年多。我已经将一个单独的盒子升级到 Redmine 2.0.3(Rails 3 Passenger),但是当我从旧实例切换到升级后的实例时,所有用户都会收到 Google 授权应用程序屏幕的提示,如果他们单击是,则会提示他们Redmine注册屏幕。

我已将 rails 会话 secret_token 与整个数据库一起转移到升级后的实例。过去从 Redmine 1.2 升级到 1.3.1 时,我完全遵循了这个程序,它运行良好。如果我在我们新升级的 Redmine 实例上注册一个新帐户并转到我在 gmail 中的用户帐户设置,我会看到同一 URL 有两个 Redmine 授权应用程序。

看起来问题的根源在于身份验证时传递给 OpenID 提供程序的 openid.realm。当用户被发送到 Google 时,url 参数已更改为:

openid.realm=http://our.domain.com/redmine/ openid.return_to=http://our.domain.com/redmine/login?_method%3Dpost%26open_id_complete%3D1

至:

openid.realm=http://our.domain.com openid.return_to=http://our.domain.com/redmine/login?_method%3Dpost

该领域不包含升级实例中的 /redmine,在手动编辑浏览器 URL 后,我确定添加此部分将解决问题。我能做些什么来让它生成正确的 openid.realm 但仍然在Passenger中工作。是否在 Apache 级别而不是在Passenger 中的rails 级别处理相对根URL?

使用的宝石:open_id_authentication、ruby-openid、rack-openid。

问候,皮埃尔

0 投票
1 回答
46 浏览

ruby-on-rails - 我可以为 ruby​​-openid 设置返回 url 吗?

我正在使用 ruby​​-openid,我可以将返回 URL 更改为默认值(当前操作)以外的值吗?

(使用导轨 4)