我有一个现有的 Rails 3 站点。本站使用 Devise 登录。
现在我需要添加一个单独登录的子站点。假设它位于 mysite.com/special。访问 /special 的每个人都需要使用与主站点不同的一组凭据登录。这些凭据对主站点无效,但它们必须同时能够登录到主站点并保持登录状态。
让情况稍微复杂一点的是,“特殊”用户能够冒充普通用户的子集。如果他们确实冒充,退出冒充等等,他们必须保持登录到特殊站点,直到他们明确地在那里注销。
我最初的想法是为整个子站点使用单独的会话 cookie,但我不知道该怎么做。我尝试设置这样的东西,但此时几乎是猜测。
scope '/special' do
devise_for :special_users, :controllers => { :sessions => "special/sessions" }, :skip => "registrations", :module => "special_users"
unauthenticated do
as :special_user do
root :to => 'special/sessions#new'
end
end
end
不幸的是,我对 Rails 有点陌生,这似乎相当复杂。甚至有可能使用设计,如果是这样,是否有人对如何去做有任何指示?