كيف يمكنك حذف ملفات تعريف الارتباط الخاصة بالبطاقات البرية في ريلز؟
-
09-06-2019 - |
سؤال
كيف يمكنك حذف ملف تعريف الارتباط في Rails الذي تم تعيينه باستخدام نطاق Wild Card:
cookies[:foo] = {:value => 'bar', :domain => '.acme.com'}
متى، بعد مستندات, ، أنت تفعل:
cookies.delete :foo
تقول السجلات
Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
لاحظ أن المجال مفقود (يبدو أنه يستخدم المعلمات الافتراضية لكل شيء).احترام RFC ، بالطبع لا يزال ملف تعريف الارتباط هناك ، متصفح -> كنترول/كمد-ل ->
javascript:alert(document.cookie);
هاهو!
س:ما هي الطريقة "الصحيحة" لحذف ملف تعريف الارتباط هذا؟
المحلول
قم بتمرير المجال : عند الحذف أيضًا.وإليكم مصدر تلك الطريقة:
# Removes the cookie on the client machine by setting the value to an empty string
# and setting its expiration date into the past. Like []=, you can pass in an options
# hash to delete cookies with extra data such as a +path+.
def delete(name, options = {})
options.stringify_keys!
set_cookie(options.merge("name" => name.to_s, "value" => "", "expires" => Time.at(0)))
end
كما ترون، فهو يقوم فقط بتعيين ملف تعريف ارتباط فارغ بالاسم الذي قدمته، والذي تم ضبطه على انتهاء صلاحيته في عام 1969، وبدون محتويات.ولكنه يتم دمجه في أي خيارات أخرى تقدمها، لذا يمكنك القيام بما يلي:
cookies.delete :foo, :domain => '.acme.com'
وأنت جاهز.
لا تنتمي إلى StackOverflow