【问题标题】:Devise choose subdomain for user为用户设计选择子域
【发布时间】:2011-02-23 08:43:03
【问题描述】:

我必须创建某种用户友好的方式让用户登录到该位置。

使用设备进行身份验证。公司有子域领域。目前,如果用户登录 root,他们也必须登录到子域。

理想情况下,用户进入登录屏幕,在他们登录后,我可以将他们重定向到公司索引控制器。当他们选择一家公司时,它会将他们重定向到该公司的子域并在那里登录。

有没有办法存储登录凭据并在他们选择子域后将它们传递给子域?

编辑 -

class Company < ActiveRecord::Base
    attr_accessible :name, :subdomain, :parent_id
end

class CompaniesController < ApplicationController
  def show
    @company = Company.find_by_subdomain!(request.subdomain)
  end
end

区域经理等用户可以登录和管理许多公司。一个员工只能登录一个公司。

完成后,经理可以看到其他商店/公司在做什么,但看不到员工。

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    我在 SO post 上的回答类似...您会希望您的 cookie 在所有域上都有效

    Yourapp::Application.config.session_store :cookie_store, :key => '_yourapp_session', :domain=>:all 
    

    【讨论】:

    • 认为这会起作用,但事实并非如此。如果有人登录到 root_url,那将被接管为已登录,但他们无法注销。什么都没发生。如果他们通过其他子域之一登录,则不会继续他们已登录。还查看了其他 cmets。
    • @pcasa -- 不怀疑你,但这是可行的 -- 如果你设置为所有的 auth cookie,那么它存在于所有子域和主域中。你用的是什么认证系统?
    • 设计 1.1.5。导轨 3.0.3。红宝石 1.9.2p136。确实按照 railscasts railscasts.com/episodes/221-subdomains-in-rails-3.
    猜你喜欢
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多