私はここで読んだ: クッキーの有効期限を取得する
名前と値のみがサーバーに送信されるため、他のCookieデータは利用できません。
つまり、Cookieの有効期限を取得する方法はありませんか?したがって、後で必要になった場合は、その日付をデータベースに保存する必要がありますか?
私はここで読んだ: クッキーの有効期限を取得する
名前と値のみがサーバーに送信されるため、他のCookieデータは利用できません。
つまり、Cookieの有効期限を取得する方法はありませんか?したがって、後で必要になった場合は、その日付をデータベースに保存する必要がありますか?
そうです、cookie-nameとcookie-valueのみが返されます。
これはRailsやPHPの欠点ではなく、RFC6265で次のように定義されています。
Cookie属性が返されないことに注意してください。特に、サーバーは、Cookieの有効期限が切れる時期、Cookieが有効なホスト、Cookieが有効なパス、またはCookieがSecure属性とHttpOnly属性のどちらで設定されているかをCookieヘッダーだけから判断することはできません。
受け入れられた答えは正しいですが、アプリケーションが通常の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
代わりは。