我正在构建一个多租户应用程序,其中帐户范围在子域。假设acme.com是我的应用程序,埃尔默是我的用户,当埃尔默在acme.com注册时,他被转移到elmer.acme.com。我想在埃尔默登记后签下他,但我现在很难过。我在用饼干。这是我的签名方法:
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
current_user = user
end
这里是我的Users#create方法的一部分,用户可以在这里注册。
if @user.save
sign_in(@user)
redirect_to root_url(subdomain: @user.subdomain)
end
当Elmer还在acme.com的时候,cookie就会被设置好。当Elmer被重定向到elmer.acme.com时,cookie无效。
我可以在我的domain: :all
中设置session_store
,但这违背了一个要求。这意味着埃尔默将被签署为elmer.acme.com
,buggs.acme.com
,以及本质上的*.acme.com
。Elmer的会话cookie只对elmer.acme.com和/或acme.com有效。
知道如何做到这一点吗?我使用Ruby1.9.3运行Rails 3.2。
发布于 2012-06-14 22:48:09
如果要为用户创建/允许令牌登录,则可以:
示例重定向代码:
if @user.save
sign_in(@user)
redirect_to root_url(user_id: @user.id, subdomain: @user.subdomain, token: @user.token)
end
https://stackoverflow.com/questions/11041791
复制相似问题