• 0

التأكد من أن المستخدم قام بتسجيل الدخول في node.js حزمة passport.js

لقد قمت بإضافة عملية التوثيق على خادم node.js باستخدام المكتبة passport.js وما أحاول تطبيقه الآن هو معرفة في حال كان المستخدم قد سجّل دخوله أم لا لإظهار عناصر محددة من الصفحة بهذا الشكل:

(if loggedIn)
   <button>logout</button>

(else)
   <button>login</button>
   <button>register</button>

كيف يمكنني تحديد إذا كان المستخدم مسجّل دخوله إلى الموقع في passport ؟ وهل يتم التحقق من طرف الخادم أم من طرف المستخدم؟

انشر على الشّبكات الاجتماعية


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

إذا قام المستخدم بتسجيل الدخول، سيتم إنشاء الغرض user ضمن نسخة الطلب req وإرساله مع كل طلب في express.js والذي يتيح لك التأكد من وجوده أو التحقق من المعلومات الموجودة فيه من خلال أي وسيط:

if (req.user) {
   //قام المستخدم بتسجيل الدخول
} else {
   ...
}

كما يمكنك فصل عملية التحقق إلى وسيط خارجي واستدعائه عند اللزوم بالشكل التالي:

function isLoggedIn(req, res, next) {
    if (req.user) {
        next();
    } else {
        res.redirect('/login');
    }
}

بحيث سيتم إعادة توجيه المستخدم إلى صفحة تسجيل الدخول في حال حاول الوصول إلى أي جزء من الكود البرمجي لديك يحتاج توثيق. ويمكنك استخدام الوسيط السابق بالشكل التالي:

app.get('/testLogin', isLoggedIn, function(req, res, next) {
   ...
});

بحيث سيتم الدخول إلى الوسيط والتأكد من تسجيل الدخول قبل الوصول إلى هذا الكود

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

بعد تسجيل الدخول ستستطيع الوصول لبيانات user عن طريق req.user بهذا الشكل 

الآن أنت تحتاج أن تتحقق من أن هذا user قد قام بتسجيل الدخول من خلال views 

لعمل ذلك ستحتاج إلى عمل متغيير تقوم فيه بتخزين بيانات user ومن ثم تمريرها للـ views

تستطيع عمل ذلك بالشكل التالي : 

app.use((req, res, next) => {
  res.locals.user = req.user;
  next();
});

هنا req.locals.user ستسمح لنا بقراءة المتغيير user على أي ملف من ملفات veiws 

الآن بكل بساطة بداخل اي ملف view 

(if user)
   <button>logout</button>

(else)
   <button>login</button>
   <button>register</button>

 

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن