权限被拒绝的 Omniauth 回调

Omniauth Callback for permission denied

也许这是一个简单的问题,但我有 rails 4 个应用程序使用 omniauth 和 devise,我无法弄清楚如何设置一个路由,以防止在权限被拒绝时无法对用户进行身份验证。我该怎么做?我需要将权限拒绝发送到我应用程序中的特定位置。

user = User.from_omniauth(env["omniauth.auth"])
if user.persisted?
 flash[:notice] = "You are in..!!!"
 sign_in_and_redirect(user)
else
 session["devise.user_attributes"] = user.attributes
 redirect_to new_user_registration_url
end

def failure
  #handle you logic here..
  redirect_to root_path 
end

您可以参考这个Omniauth-facebook cancel button答案。

它指出您需要在您的 omniauth 控制器中添加一个失败方法