البيان الرسمي لدور ملفات تعريف الارتباط هو: Parse Cookie Header و REQ.Cookies الشهيرة مع كائن يرتبط بأسماء ملفات تعريف الارتباط. ما أفهمه هو تحويل ملفات تعريف الارتباط في الرؤوس ودمجها باستخدام req.cookies. نظرًا لأن جوهر ملفات تعريف الارتباط ، يطالب Parser بوظائف 2: SignedCookies و Jsoncookies ، وكذلك وظائف المساعد.
تنهي هذه المقالة هذا المكون الإضافي هنا. دعنا نراجعه ونفتح أيضًا المقال التالي حول تعلم الجلسة.
يجلب ملفات تعريف الارتباط ملفات تعريف الارتباط من العميل ثم يمر عبر جلسة صريحة (قائمة على قائم على ذلك). على العميل ، يتم تمثيله كسلسلة موقعة. على الخادم ، نظرًا لاستخدام طريقة غير التوقيع ، يمكنك رؤية الأحرف غير الموقعة. وبهذه الطريقة ، يتم كشف كل الغموض. دعونا نلقي نظرة على رمز الجلسة الذي يتولى ملفات تعريف الارتباط.
نسخة الكود كما يلي: وظيفة setCoookie (الدقة ، الاسم ، Val ، Secret ، خيارات) {
var signed = 's:' + signature.sign (val ، secret) ؛
// .... تم حذفه
Res.Setheader ('set-cookie' ، header)
}
هنا ، يتم استخدام set-cookie لكتابة ملفات تعريف الارتباط. عندما يرسل العميل ملف تعريف الارتباط ، يتم استخدام ملفات تعريف الارتباط الموقعة من Parser.js.
نسخة الكود كما يلي: exports.signedcoowies = وظيفة (OBJ ، سرية) {
var cookies = object.keys (obj) ؛
var dec ؛
مفتاح var ؛
var ret = object.create (null) ؛
فار فال
لـ (var i = 0 ؛ i <cookies.length ؛ i ++) {
المفتاح = ملفات تعريف الارتباط [i] ؛
val = obj [key] ؛
ديسمبر = Exports.SignedCookie (Val ، Secret) ؛
if (val! == Dec) {
RET [KEY] = DEC ؛
حذف OBJ [مفتاح] ؛
}
}
العودة
} ؛
Exports.SignedCookie = Function (Str ، Secret) {
إرجاع str.substr (0 ، 2) === 's:'
؟ Signature.unsign (Str.Slice (2) ، Secret)
: شارع
} ؛
في وظيفة المساعدة SignedCookie ، عندما يتم العثور على أنه يحتوي على S: ، إنه ملف تعريف ارتباط موقّع ، ثم يتم إلغاء توقيعه باستخدام Signature.unsign. في المرة القادمة ، دعونا نلقي نظرة على الجلسة.
ما سبق هو المحتوى الكامل لـ node.js cookie-parser parser.js. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.