Learn-json-web-tokens: تخزين الويب والتحسين التدريجي

تم إنشاؤها على ١٥ أكتوبر ٢٠١٥  ·  9تعليقات  ·  مصدر: dwyl/learn-json-web-tokens

في # 5 و 46 ومعظم المناقشات عبر الإنترنت ، يبدو أن الأشخاص يتخلفون عن استخدام التخزين المحلي / تخزين الجلسة لـ JWTs ، بدلاً من استخدام ملفات تعريف الارتباط. يتطلب هذا استخدام AJAX في جميع أنحاء التطبيق بحيث يمكن تعيين الرأس من مساحة تخزين الويب في كل مرة. ما أفهمه هو أن هذا لمنع عمليات تزوير الطلبات عبر المواقع (وهو أساسًا يستفيد من سياسة المصدر نفسه للقيام بذلك).

كيف يتناسب هذا مع التحسين التدريجي ، حيث لا تدعم بعض الأجهزة جافا سكريبت على الإطلاق؟

enhancement question

التعليق الأكثر فائدة

ليس بالضرورة على الرغم من أن هذا يعتمد على مجموعة الأدوات الخاصة بك. Angular على سبيل المثال يسمح لك بتعيين هذا مرة واحدة .. أعتقد أنه يمكنك حتى القيام به مع jquery بسهولة.

$.ajaxSetup({
   headers: { 'x-my-custom-header': 'some value' }
});

هناك مشكلة أخرى تتعلق بملفات تعريف الارتباط كطبقة نقل للرموز وهي أنك تستخدم مهلتين ولا تستفيد من تجنب مشكلات CORS. تعمل ملفات تعريف الارتباط على تعقيد الوصول إلى خدمات الويب RESTful. من الأسهل بكثير إنشاء curl one liner للوصول إلى مورد برمز مميز بدلاً من تجميع ملف تعريف ارتباط.

ال 9 كومينتر

_Another_ _GREAT _ سؤال من _Wizard_! : +1:
لأغراض هذا المثال الجزئي أعتقد أن "_Ok_" يستخدم localStorage .
لنكن صادقين ، _ الجميع_ يستخدم React هذه الأيام دون أي اعتبار لإمكانية الوصول.
جميع الأطفال الرائعين _way_ أكثر اهتمامًا بـ _ إطارات جديدة لامعة _ من _التحسين التدريجي _...

لكن...
في تطبيقنا _actual_ ، نستخدم cookies _ بدقة_ من أجل التوافق مع الإصدارات السابقة والتحسين التدريجي.
لهذا السبب أضفنا الخيار إلى JWT2 ... انظر: https://github.com/dwyl/hapi-auth-jwt2#want -to-sendstore-your-jwt-in-a-cookie

لذا في الختام: أود إضافة localStorage إلى المثال في هذا الريبو وإضافة comment لإعلام الأشخاص بأن استخدام ملفات تعريف الارتباط لتخزين JWTs هو "_Ohkay_" لأنك لا تزال تحصل على كل _قابلية التوسع الأفقية_ والأمان فوائد استخدام JWTs مع توفير _ جهد_ الاضطرار إلى تعيين / الحصول على JWT وإضافته إلى الرؤوس عند كل طلب ...

تضمين التغريدة

هل هناك سبب محدد لإرسال JWTS المخزنة في التخزين المحلي في الرؤوس أم أن هناك أي شيء ضعيف / "خاطئ" حول استخدام https://www.npmjs.com/package/node-localstorage؟

Jbarget هل تقوم ببناء "_Universal_" يتطلب منك الوصول إلى localStorage على الخادم؟ إذا كانت هذه هي حالة الاستخدام الخاصة بك ، فإن الوحدة النمطية node-localstorage ستفي بالغرض الخاص بك.
_ ومع ذلك_ لا يزال يتعين عليك _يدويًا_ إرسال JWT في header لإرساله مرة أخرى إلى الخادم في طلبات "AJAX" ... لذلك لا توجد ميزة كبيرة لاستخدام _module_ إذا كان كل ما تريد القيام به هو الحصول على / تعيين الرمز المميز إلى / من localStorage ...

nelsonic سننتهي على الأرجح بإعداده في رؤوس كل طلب ، شكرًا على الوضوح!

Jbarget هل لديك _objection_ لتخزين JWT في ملف تعريف ارتباط؟ (_ انها تبسط حياتك ..._)

nelsonic لا اعتراض ، هل أنا محق في التفكير في أنها تبسط حياتي من خلال القدرة على الوصول إلى ملفات تعريف الارتباط من أي مكان في التطبيق بدلاً من التخزين المحلي / الجلسة؟

إنه يبسط تطبيقك لأنه بمجرد تعيين ملف تعريف الارتباط بواسطة الخادم ، ستحتوي جميع الطلبات المرسلة / المستلمة على ملف تعريف الارتباط دائمًا. مما يعني أنك لا تحتاج أبدًا إلى التفكير في الأمر بعد هذه النقطة.
على النقيض من تخزين JWT في localStorage يعني أنه لا يمكنك الحصول على تفاعل بخلاف ajax وعليك أن تتذكر رأس SET auth لكل طلب تقدمه إلى الخادم .. .

ليس بالضرورة على الرغم من أن هذا يعتمد على مجموعة الأدوات الخاصة بك. Angular على سبيل المثال يسمح لك بتعيين هذا مرة واحدة .. أعتقد أنه يمكنك حتى القيام به مع jquery بسهولة.

$.ajaxSetup({
   headers: { 'x-my-custom-header': 'some value' }
});

هناك مشكلة أخرى تتعلق بملفات تعريف الارتباط كطبقة نقل للرموز وهي أنك تستخدم مهلتين ولا تستفيد من تجنب مشكلات CORS. تعمل ملفات تعريف الارتباط على تعقيد الوصول إلى خدمات الويب RESTful. من الأسهل بكثير إنشاء curl one liner للوصول إلى مورد برمز مميز بدلاً من تجميع ملف تعريف ارتباط.

يتم إغلاق هذه المشكلة تلقائيًا حيث مضى عليها أكثر من عام. لا تتردد في إعادة فتحه إذا كان لا يزال وثيق الصلة بمشروعك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

nelsonic picture nelsonic  ·  5تعليقات

nelsonic picture nelsonic  ·  4تعليقات

KumarS-Naveen picture KumarS-Naveen  ·  3تعليقات

NE-SmallTown picture NE-SmallTown  ·  5تعليقات

joepie91 picture joepie91  ·  18تعليقات