Facebook 仅允许设计身份验证中的某些路由

Facebook 仅允许设计身份验证中的某些路由,facebook,devise,routes,ruby-on-rails-3.1,Facebook,Devise,Routes,Ruby On Rails 3.1,我正在使用Desive omniauth通过Facebook对用户进行身份验证 devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } 这很有效,但我想限制用户访问'http://app/users/sign_in“页面 我可以按以下方式更改路线: devise_scope :user do match '/users/auth/facebook/call

我正在使用Desive omniauth通过Facebook对用户进行身份验证

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
这很有效,但我想限制用户访问'http://app/users/sign_in“页面

我可以按以下方式更改路线:

devise_scope :user do 
  match '/users/auth/facebook/callback' => 'users/omniauth_callbacks#facebook'
end 
但是,我如何重定向用户,使其不从具有

before_filter :authenticate_user!

我希望用户只使用Desive_作用域匹配url,否则总是将他们重定向到某个默认的“应用程序索引”路径。

当仅使用omniauth而不使用database_authenticatable时,最新的Desive版本总是将您重定向到根url页面。您可以通过生成一个路由来定制它,该路由的名称为“new_user_session”,指向您的“application#index”。

谢谢!修改后的路由文件
design_for:users,:controllers=>{:omniauth_callbacks=>“users/omniauth_callbacks”}确实获得“users/sign_in'=>“application#about',:as=>:new_user_session end
,并且还必须删除用户模型designe:validable选项,因为仅使用omniauth选项时不需要密码字段。