我正在使用open_id_authentication gem对google进行身份验证。在我的会话控制器中,我打电话
authenticate_with_open_id(complete_identity_url, OPENID_OPTS) do |openid_result, identity_url, registration|
并返回401状态代码Unauthenticated。但它应该显示我必须确认访问的谷歌页面。
我制作了示例app:https://github.com/mbashirov/rails3-test,它只在会话控制器中设置了代码并设置了路由。
该代码在rails 2.3 app上完美运行。有错误吗?
感谢。
解。
在会话控制器中添加
class SessionsController < ApplicationController
include OpenIdAuthentication
在config / application.rb中添加
config.app_middleware.use OpenIdAuthentication
完成这两个步骤后,一切正常。
答案 0 :(得分:0)
如果它在2.3中工作,然后在3中不起作用,那听起来就像是你自己制作的错误。
后续步骤:
1)升级到最新的3.1(或更好的3.1.1)Rails
2)联系宝石的作者,了解他们的3.1支持计划是什么。他们可能已经在开发一个可以帮助测试的解决方案。
3)如果你掌握了这些技能,那么通过解决问题做出贡献将是非常棒的。
我建议你先使用以太偷看工具,如Fiddler或Mac工具,看看你的机器在运行3.1.1 vs 2.3时发出相同的请求/得到相同的响应。
然后调试......