Ruby on rails Rails 3.0.9+开放式身份验证

Ruby on rails Rails 3.0.9+开放式身份验证,ruby-on-rails,ruby-on-rails-3,openid,google-openid,Ruby On Rails,Ruby On Rails 3,Openid,Google Openid,我正在使用open_id_认证gem对谷歌进行认证。在我的会话中,我调用控制器 authenticate_with_open_id(complete_identity_url, OPENID_OPTS) do |openid_result, identity_url, registration| 并返回未经验证的401状态代码。但它应该显示我必须确认访问权限的谷歌页面 我制作了示例应用程序:,它只有会话控制器和路由设置中的代码 这段代码在Rails2.3应用程序上运行得非常好。有错误吗 谢谢

我正在使用open_id_认证gem对谷歌进行认证。在我的会话中,我调用控制器

authenticate_with_open_id(complete_identity_url, OPENID_OPTS) do |openid_result, identity_url, registration|
并返回未经验证的401状态代码。但它应该显示我必须确认访问权限的谷歌页面

我制作了示例应用程序:,它只有会话控制器和路由设置中的代码

这段代码在Rails2.3应用程序上运行得非常好。有错误吗

谢谢

解决方案

在会话控制器中添加

class SessionsController < ApplicationController
  include OpenIdAuthentication

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

如果它在2.3中工作,然后在3中不工作,那听起来像是一个不是你自己造成的错误

下一步:

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

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

3如果你有这些技能,那么通过解决问题为自己做出贡献将是非常棒的

我建议您从Fiddler或Mac工具等以太窥视工具开始,看看您的机器在运行3.1.1 vs 2.3时是否发出相同的请求/得到相同的响应


然后调试…

谢谢你的建议,它真的帮了我的忙。
config.app_middleware.use OpenIdAuthentication