0

我正在使用 open_id_authentication gem 向谷歌进行身份验证。在我的会话控制器中,我调用

authenticate_with_open_id(complete_identity_url, OPENID_OPTS) do |openid_result, identity_url, registration|

它返回 401 状态代码未验证。但它应该显示我必须确认访问的谷歌页面。

我制作了示例应用程序:https ://github.com/mbashirov/rails3-test ,它只有会话控制器和路由集中的代码。

该代码在 rails 2.3 应用程序上完美运行。有错误吗?

谢谢。

解决方案。

在会话控制器中添加

class SessionsController < ApplicationController
  include OpenIdAuthentication

在 config/application.rb 添加

config.app_middleware.use OpenIdAuthentication

在这两个步骤之后一切正常。

4

1 回答 1

0

如果它在 2.3 中有效,然后在 3 中无效,这听起来像是不是您自己造成的错误。

下一步:

1) 升级到最新的 3.1(或更好的 3.1.1)Rails

2) 联系 gem 的作者,了解他们的 3.1 支持计划是什么。他们可能已经在研究您可以帮助测试的解决方案。

3)如果你有技能,你会通过解决问题来回馈社会,这将是很棒的。

我建议您从 Fiddler 之类的 Ether peek 工具或 Mac 工具开始,以查看您的机器在运行 3.1.1 和 2.3 时是否发送相同的请求/获得相同的响应。

然后调试....

于 2011-09-16T14:30:39.623 回答