3

私はここで読んだ: クッキーの有効期限を取得する

名前と値のみがサーバーに送信されるため、他のCookieデータは利用できません。

つまり、Cookieの有効期限を取得する方法はありませんか?したがって、後で必要になった場合は、その日付をデータベースに保存する必要がありますか?

4

2 に答える 2

9

そうです、cookie-namecookie-valueのみが返されます。

これはRailsやPHPの欠点ではなく、RFC6265で次のように定義されています

Cookie属性が返されないことに注意してください。特に、サーバーは、Cookieの有効期限が切れる時期、Cookieが有効なホスト、Cookieが有効なパス、またはCookieがSecure属性とHttpOnly属性のどちらで設定されているかをCookieヘッダーだけから判断することはできません。

于 2012-07-23T09:19:48.250 に答える
0

受け入れられた答えは正しいですが、アプリケーションが通常のCookieではなく永続的なCookie(有効期限が遠い将来)を設定することを確認したかったので、ここに来ました。

これが当てはまるかどうかを確認したい場合(正確な有効期限は気にしない場合)、次のように期待値を設定できます(例ではMocha gemを使用しています)。

ActionDispatch::Cookies::PermanentCookieJar.any_instance.expects(:[]=).with(:key, "value").once

この期待は、の1回の呼び出しで合格しますが、cookies.permanent[:key] = "value"では失敗しcookies[:key] = "value"ます。

署名されたCookie(cookies.permanent.signed[:key] = "value")でも機能します。ただし、署名されたCookieの値はアプリケーションに基づいて暗号化さsecret_key_baseれるため、期待値を次のように調整する必要があることに注意してください。

ActionDispatch::Cookies::PermanentCookieJar.any_instance.expects(:[]=).with(:key, anything).once

代わりは。

于 2015-10-20T08:51:11.620 に答える