Samer Alashqar نشر 14 فبراير 2022 أرسل تقرير نشر 14 فبراير 2022 السلام عليكم.. هذه اول مرة اتعامل بها مع Tokens وهذا ما قمت بانشائه باستخدام Refresh token && Access token لذلك لا اعلم هل ما قمته به جيد بحيث ان يتصدى لهجمات الاختراق ولو بشكل بسيط ؟ ام توجد به بعض الثغرات ؟ اقتباس
0 Hassan Hedr نشر 14 فبراير 2022 أرسل تقرير نشر 14 فبراير 2022 يرجى إرفاق الشيفرة المتعلقة بالاستفسار ضمن التعليق كنص مع تنسيقه بشكل مناسب لك يكون استفسارك أوضح للزوار اقتباس
0 Samer Alashqar نشر 14 فبراير 2022 الكاتب أرسل تقرير نشر 14 فبراير 2022 بتاريخ 2 ساعات قال Hassan Hedr: يرجى إرفاق الشيفرة المتعلقة بالاستفسار ضمن التعليق كنص مع تنسيقه بشكل مناسب لك يكون استفسارك أوضح للزوار //authentication && authorization exports.loginRequired = (req,res,next) => { // get tokens const refreshToken = req.cookies['refresh-token'] const token = req.cookies['access-token']; // check if refreshToken exist ? if(refreshToken === null) res.status(401).sendFile(path.join(__dirname, "../views/index.html")) // check if refreshToken verified ? jwt.verify(refreshToken, process.env.REFRESH_TOKEN_SECRET, function(exp) { if(exp) { const refAcToken = createToken(User.email); res.cookie('refresh-token' , refAcToken); } else{ //check if token exist ? if(token === null) res.status(401).sendFile(path.join(__dirname, "../views/index.html")); //check if token verified ? jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, function (exp) { if(exp) { const accessToken = createToken(User.email); res.cookie('access-token' , accessToken); next() } else{ next() } }); } }); } اقتباس
0 Salah Eddin Beriani2 نشر 14 فبراير 2022 أرسل تقرير نشر 14 فبراير 2022 الشيفرة جيدة ويمكن استعمالها للتامين لقد قمت باعادة كتابة الشيفرة وأظفت ميزة التأكد من ارسال صفحة خطأ اذا ماحدث خطأ في الشيفرة exports.loginRequired = (req, res, next) => { const refreshToken = req.cookies['refresh-token']; const token = req.cookies['access-token']; if (!refreshToken) res.status(401).sendFile(path.join(__dirname, '../views/index.html')); try { const refexp = jwt.verify(refreshToken, process.env.REFRESH_TOKEN_SECRET); if (refexp) { const refAcToken = createToken(User.email); res.cookie('refresh-token', refAcToken); } else { if (!token) res.status(401).sendFile(path.join(__dirname, '../views/index.html')); const tokexp = jwt.verify(token, process.env.ACCESS_TOKEN_SECRET); if (tokexp) { const accessToken = createToken(User.email); res.cookie('access-token', accessToken); next(); } else { next(); } } } catch (error) { res.status(401).sendFile(path.join(__dirname, '../views/index.html')); } }; اقتباس
السؤال
Samer Alashqar
السلام عليكم..
هذه اول مرة اتعامل بها مع Tokens وهذا ما قمت بانشائه باستخدام Refresh token && Access token لذلك لا اعلم هل ما قمته به جيد بحيث ان يتصدى لهجمات الاختراق ولو بشكل بسيط ؟ ام توجد به بعض الثغرات ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.