اذهب إلى المحتوى
  • 0

شرح التعامل مع jwt في node.js

أحمد عبد الله2

السؤال

السلام عليكم .. اريد انشاء مشروع بالنود جى اس وهو عبارة عن posts و users حيث ان كل يوزر يستطيع ان يقوم بعمل post وانشاءه والتعديل عليه ولكن لا يمكن لغيره ان يقوم بحدذفه او التعديل عليه .. انا اريد ان اقوم بانشاء هذا التطبيق باستخدام النود ولكن ليس عندى العلم الكافى ب jwt رجاء اريد docs او project على جيت هاب او حتى دورة توضيحية حتى يتسنى لى التعلم وشكرا 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

الjwt (json web token) هي طريقة لتخزين البيانات بشكلٍ أمن حيث أنها تقوم بإستخدام البصمة الرقمية(digital signature) وهي طريقة لضمان عدم التﻻعب في محتويات الtoken مما يضمن للخادم أن الtoken ليست مزيفة وأنها صالحة للإستخدام

الطريقة المتعارفة عليها في التعامل في مثل هذا السيناريو الذي وضعتها تتم كالتالي

  • أن يقوم المُستخدم بعد تسجيل الدخول بإستﻻم token من الخادم ويقوم المُستخدم بتخزينه
  • في كل مرة يُحاول المُستخدم إرسال الtoken يقوم الخادم بالتأكد من صﻻحيته ومن عدم التﻻعب فيه 
  • ﻻ يمكن لأحد إنشاء منشور إإﻻ عند تضمين الtoken في الheaders الخاصة بالhttp requests 
  • عند إنشاء المنشور يقوم الخادم بمعرفة مُعرف(id) صاحب المنشور عن طريق الtoken ومن ثم يقوم بتخزينه في قاعدة البيانات مع المنشور
  • عند محاولة تعديل المنشور يقوم الخادم بالتأكد من وجود الtoken header إن لم يجده يُرسل رسالة خطأ للمُستخدم, إن وجده يتأكد إن المُعرف الموجود في الtoken هو ذاته الموجود في قاعدة البيانات للمنشور المُراد تعديله أو حذفه, إن وجد أنهم ليسوا نفس المُعرف يقوم بإرسال رسالة خطأ

ويمكن البدأ في إستخدامها عبر أولا تثبيت الباكدج jsonwebtoken من npm 

npm install jsonwebtoken

ونقوم بتشفير البيانات بالشكل التالي 

var privateKey = "secret";
var token = jwt.sign(userObj, privateKey);

حيث نستبدل userObj بأوبجكت يُمثل بيانات المستخدم المُراد تخزينها ونستبدل الprivatekey بكلمة خاصة بك لصنع البصمة الرقمية

ومن أجل التأكد من صحة الtoken عند إستقبالها من المستخدم 

jwt.verify(token, 'secret', function(err, decoded) {
  console.log("succeed");
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...