アカウントがサブドメインでスコープされているマルチテナント アプリを構築しています。acme.comが私のアプリで、Elmerが私のユーザーであると仮定すると、Elmerが 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 がelmer.acme.com
、buggs.acme.com
、および本質的に にサインインすることを意味し*.acme.com
ます。Elmer のセッション Cookie は、 elmer.acme.comおよび/またはacme.comに対してのみ有効である必要があります。
これを達成する方法はありますか?Ruby 1.9.3 で Rails 3.2 を実行しています。