【发布时间】:2012-04-19 11:49:00
【问题描述】:
我有我的班级 Users::OmniauthCallbacksController
protected
def after_omniauth_failure_path_for resource
'/report_failure'
end
但 super 是被调用的那个。
我怀疑这是因为 passthru 解决方法:
devise_for :users do
get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
有人知道如何解决这个问题吗? 我正在使用设计 2.0.4
这是日志文件报告:
Started GET "/users/auth/facebook/callback?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request." for 77.124.184.115 at 2012-04-19 11:34:46 +0000
Processing by Devise::OmniauthCallbacksController#failure as HTML
Parameters: {"error_reason"=>"user_denied", "error"=>"access_denied", "error_description"=>"The user denied your request."}
Redirected to http://myapp.com/users/sign_in
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
编辑:如果我删除直通重定向,那么它可以工作:
# def devise_for :users do
# get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
# end
谢谢
【问题讨论】:
-
您的错误消息告诉您,Devise 甚至没有使用您的
OmniauthCallbacksController,它使用的是自己的。我认为@the8472 是对的。您发布的代码未显示您设置:omniauth_callbacks => "users/omniauth_callbacks"
标签: facebook ruby-on-rails-3 devise omniauth