我试着用相同的方法设置两个不同的作用域
User
模型。
路由.rb
devise_scope :consumer do
get "/login" => "consumer/sessions#new", :as => 'login'
end
devise_for :consumers,
class_name: 'User',
controllers: { sessions: 'consumer/sessions' },
path_names: {
verify_authy: "/verify-token",
enable_authy: "/enable-two-factor"
}
devise_scope :provider do
get "/provider/login" => "provider/sessions#new", :as => 'provider_login'
end
devise_for :providers,
class_name: 'User',
controllers: {
sessions: 'provider/sessions',
confirmations: 'provider/confirmations'
}
这种方法的问题是,如果使用者在提供者登录窗体上使用正确的凭据,他们就可以登录。
我看了看房间
User.find_for_database_authentication
方法,但warden不会传递正在使用的范围。
用户
类有两个范围返回提供者/使用者用户:
User.providers
和
User.consumers
.
有什么办法解决这个问题吗?