私は各組織にサブドメインを介して独自のポータルを提供するマルチテナントアプリケーションを実行しているとします。各サブドメインでブラウザセッションが一意ですか?
例 -
orgA.application.com
orgB.application.com
- 等...
各サブドメインが私のPSQL DBに異なるスキーマ/テナントから読み込み、それ以外は同じアプリケーションであります。各サブドメインのユーザーアカウントを持っているように、自分自身として
def current_user
if session[:user_id]
@current_user ||= User.find_by_id(session[:user_id])
end
end
がありますが、いくつかの管理者/スーパーユーザ - 私のApplicationController
で
私はcurrent_user
ように設定します。ユーザー(id = 22
)とorgA
にログインすると、session
はuser_id: 22
に設定されます。
今、私のユーザIDが44
であるorgB
に切り替えたいとします。 orgA
にセッションを設定した後にorgB
にログインした場合、のユーザとして間違ってログインする可能性はありますか?orgB
?
さらに基本的に、私はブラウザのクッキーセッションがどのように設定されているかを理解しようとしています。私の理解では、クライアントのブラウザに暗号化されキャッシュされた変数のハッシュです。それはサブドメインごとに設定されていますか?または、特定のサイトのすべてのサブドメインが同じキャッシュ/セッションCookieを共有していますか?
上記の例のように、セッションの相互受粉を防ぐにはどうすればよいですか?私のcurrent_user
メソッドがあまりにも基本的ですか?
ありがとうございます!
私はクリアでデフォルトのままにしているようなサウンドです。完璧で明確な説明 - ありがとう! – user2490003