-1
production.myapp.com
とstaging.myapp.com
には、Cookieセッションストアを使用するサーバーがあり、そのCookieはmyapp.com
ドメインに設定されています。復号化/検証できないセッションCookieを処理する方法はありますか? Railsのバージョンは5.1です。未確認のセッションのリセット
production.myapp.com
とstaging.myapp.com
には、Cookieセッションストアを使用するサーバーがあり、そのCookieはmyapp.com
ドメインに設定されています。復号化/検証できないセッションCookieを処理する方法はありますか? Railsのバージョンは5.1です。未確認のセッションのリセット
Documentaion for Cookiesをご覧ください。それを暗号化するために使用されているものであるので、あなたは両方のアプリがsecret_key_base
を共有する必要があること、しかし、すなわち
cookies.encrypted[:my-key] = {
domain: ".myapp.com",
secure: !Rails.env.development?,
value: "put-your-value-here",
}
注意、myapp.com
するクッキーにドメインを暗号化されたCookieを使用して設定することができます/クッキー値を読み。
削除する場合は、必ずドメインを引数として渡してください。
cookies.delete(:my-key, domain: ".my-app.com")
これはまさに私が避けようとしていることです。アプリは別の 'SECRET_KEY_BASE'を使います。アプリが処理できないクッキーを受け取ったときに' reset_session'したいと思います。このcookieは、他のサービスが動作するよう意図的に 'myapp.com'ドメインに設定されています。 – synapse
あなたは通常のクッキーを使用し、次にhttp://api.rubyonrails.org/classes/ActiveSupport/MessageEncryptor.html#method-c-newとhttp://api.rubyonrailsを使用してその値を暗号化することができます.org/classes/ActiveSupport/MessageEncryptor.htmlを参照してください。しかし、両方のアプリはまだ秘密の何らかの種類を共有する必要があります。 – patkoperwas
セッションを両方のサーバーで使用できないようにするために、ステージングにログインしたユーザーが運用に移行したときにセッションをリセットする必要があります。 – synapse