توليد واستخدام سر في ملف تهيئة لـ JWT

2

لدي سؤال بخصوص أسرار JWT.

أفهم أن "أفضل ممارسة" هي تخزين السر في متغير بيئة ، ولكن ماذا عن هذا الإعداد؟

أنا أولد سرّي باستخدام مكتبة تسمى secrets .

أقوم بتخزين سري في ملف التكوين ، ويبدو السطر ذو الصلة مثل هذا

jwtSecret: process.env.JWT_SECRET || secret,

أين secret = new Secret(32, true, true).generate();

الآن ، الطريقة التي أفهم بها هذا هي أنه باستخدام هذا الإعداد ، سيتم إعادة إنشاء سري في كل مرة يبدأ فيها الخادم ، مما يؤدي إلى إبطال جميع الرموز المميزة السابقة. هل هذا إعداد الصوت؟ هل هناك أي طريقة قد يتسبب بها هذا الإعداد في حدوث شكاوى غير ضرورية للمستخدمين تتجاوز مطالبتهم بإعادة المصادقة؟ ماذا عني؟ ما الصداع الذي قد أواجهه باستخدام مثل هذا الإعداد؟ يجب أن أشير إلى أن هذا التطبيق سيعمل على الأرجح على خادم واحد فقط في كل مرة ، لذا فإن مشاركة هذا السر بين العقد المتعددة لا يمثل مشكلة في وضعي.

أوه ، وإذا اتضح أن هذه فكرة سيئة للغاية ، فالرجاء توضيحها بوضوح من خلال الرد بأحرف كبيرة (أنا أمزح فقط ، ولكن يرجى توضيحها).

1 إجابة

0

على حد علمي ، لا تحتاج (ولا ينبغي) إنشاء أسرار في كل مرة تبدأ فيها الخادم الخاص بك. يمكنك فقط إضافة واحد إلى بيئتك وهذا يكفي.
ولكن إذا كنت تريد إنشاء سر بشكل سيئ بدلاً من الخروج بسر ، فيمكنك كتابة برنامج نصي منفصل يمكن استدعاؤه عند الطلب ، وفقط من قبل مسؤول وراء المصادقة.

//maybe some authentication code here
process.env.secret = new Secret(32, true, true).generate();
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام