【问题标题】:Omniauth 404 on callbackOmniauth 404 回调
【发布时间】:2013-02-23 16:17:48
【问题描述】:

我正在尝试将omniauth 与我的应用程序集成,因为我之前在Rails 3 应用程序上使用它取得了成功并获得了愉快的体验。

不幸的是,我正在开发的应用程序是 Rails 2.3.14。当我使用omniauth时,一切都很顺利,直到回调返回到我的应用程序 - 日志中没有显示错误,只是显示了一条随机的 404 消息。我的路线如下:

map.connect '/auth/:provider', :controller => 'user_identities', :action => 'blank' 
map.callback "/auth/:provider/callback", :controller => "user_identities", :action => "create"
map.failure "/auth/failure", :controller => "user_identities", :action => "fail"

第一行中的空白操作是一个错误的解决方法,该错误显示没有方法获取 'auth/:provider',因为它通过 Omniauth 重定向到 facebook,所以它永远不会加载。

这是我的错误日志

Processing UserIdentitiesController#create (for 127.0.0.1 at 2011-10-08 22:36:26) [GET] 参数:{"code"=>"12345", "action"=>"create", "controller"=>"user_identities", "provider"=>"facebook"} 渲染 /Users/hash/myapp/public/404.html (404)

在 create 的第一行添加调试器或 puts 也无济于事

有什么想法吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails omniauth


    【解决方案1】:

    我刚刚遇到了这个问题,在从 twitter 返回的 /auth/twitter/callback 请求上获得了 404 页面。

    问题是我在控制器中发生了应用程序错误。这产生了 404(不知道为什么)而不是 500。

    【讨论】:

      【解决方案2】:

      请注意,它试图在 GET 请求上呈现 #create。创建操作只能接受 POST 请求。在没有看到更多代码的情况下,我不知道如何解决这种特定情况,但这就是问题所在。您可能只需要在表单中添加:method => :post

      【讨论】:

      • 好吧,即使我添加了一个帖子,那也将是 /auth/:provider,即空白方法。 facebook返回的回调是GET,因为omniauth就是这样做的……有什么办法可以改变吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多