act_as_tenant gem 非常好用。为多个租户保存和检索数据没有问题。但是,当我在没有子域的情况下访问我的开发站点时遇到了挑战。
问题:如果我不指定子域,任何租户的用户仍然可以登录。
示例 - cheese.lvh.me:3000 的用户将无法登录并访问来自 bacon.lvh.me:3000 的数据(反之亦然)。但是奶酪和培根用户都可以登录 lvh.me:3000。登录后,租户范围不再适用,因此所有新插入都将获得 NULL account_id。
我想:如果未指定子域,则阻止用户登录。
我正在使用流行的 railstutorial.org 中的 M.Hartl 的用户登录方法。
def create
user = User.find_by_email(params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
flash[:success] = "Welcome user!"
redirect_to users_path
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
将不胜感激任何建议。