2017-12-05 15 views
-1

production.myapp.comstaging.myapp.comには、Cookieセッションストアを使用するサーバーがあり、そのCookieはmyapp.comドメインに設定されています。復号化/検証できないセッションCookieを処理する方法はありますか? Railsのバージョンは5.1です。未確認のセッションのリセット

答えて

-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") 
+0

これはまさに私が避けようとしていることです。アプリは別の 'SECRET_KEY_BASE'を使います。アプリが処理できないクッキーを受け取ったときに' reset_session'したいと思います。このcookieは、他のサービスが動作するよう意図的に 'myapp.com'ドメインに設定されています。 – synapse

+0

あなたは通常のクッキーを使用し、次にhttp://api.rubyonrails.org/classes/ActiveSupport/MessageEncryptor.html#method-c-newとhttp://api.rubyonrailsを使用してその値を暗号化することができます.org/classes/ActiveSupport/MessageEncryptor.htmlを参照してください。しかし、両方のアプリはまだ秘密の何らかの種類を共有する必要があります。 – patkoperwas

+0

セッションを両方のサーバーで使用できないようにするために、ステージングにログインしたユーザーが運用に移行したときにセッションをリセットする必要があります。 – synapse