Kirolos Nagy2 نشر 9 أغسطس 2023 أرسل تقرير نشر 9 أغسطس 2023 (معدل) كيف احفظ بيانات قادمه من node.js backend من مكتبه passport الي cookies frontend تلقائي بدون اي function في الفرونت تم التعديل في 9 أغسطس 2023 بواسطة Kerollos Nagy 1 اقتباس
0 Mustafa Suleiman نشر 9 أغسطس 2023 أرسل تقرير نشر 9 أغسطس 2023 من خلال الإعتماد على middleware passport.session() لحفظ البيانات من backend إلى cookies في frontend تلقائيًا.، وذلك الوسيط middleware يستخدم مكتبة cookie-session لإنشاء وإدارة جلسات المستخدم. وللاستخدام، أضف passport.session() إلى middleware chain الخاص بك: app.use(passport.session()); ثم، يمكنك استخدام استراتيجية Passport الخاصة بك لحفظ البيانات في الجلسة، مثلا في حال كنت تستخدم استراتيجية passport.local()، تستطيع حفظ اسم المستخدم وكلمة المرور في الجلسة باستخدام الكود التالي: passport.use(new LocalStrategy((username, password, done) => { // Check the username and password against the database if (username === 'kerlos' && password === 'secret') { // The user is authenticated done(null, user); } else { // The user is not authenticated done(new Error('Invalid username or password')); } })); بمجرد حفظ البيانات في الجلسة، سيتم إرجاعها إلى frontend تلقائيًا. وبإمكانك الوصول إلى البيانات باستخدام middleware cookie-parser()، ومثلاً للحصول على على اسم المستخدم نستخدم التالي: const username = req.cookies.username; وباستطاعتك أيضًا استخدام middleware cookie-parser() لإزالة البيانات من الجلسة، فلتسجيل خروج المستخدم، استخدم الكود التالي: req.session.destroy(); وإليك مثال كامل: const express = require('express'); const passport = require('passport'); const cookieSession = require('cookie-session'); // Create an Express app const app = express(); // Configure passport app.use(passport.initialize()); app.use(passport.session({ secret: 'secret', })); // Define a route that requires authentication app.get('/protected', passport.authenticate('local'), (req, res) => { // The user is authenticated res.send('Hello, ' + req.user.username); }); // Define a route that logs the user in app.post('/login', (req, res) => { // Check the username and password against the database if (req.body.username === 'johndoe' && req.body.password === 'secret') { // The user is authenticated passport.authenticate('local')(req, res, () => { res.redirect('/protected'); }); } else { // The user is not authenticated res.send('Invalid username or password'); } }); // Define a route that logs the user out app.get('/logout', (req, res) => { // Invalidate the user's session req.session.destroy(); res.redirect('/'); }); // Start the app app.listen(3000, () => { console.log('App listening on port 3000'); }); 1 اقتباس
0 Kirolos Nagy2 نشر 9 أغسطس 2023 الكاتب أرسل تقرير نشر 9 أغسطس 2023 انا محتاج الطريقه تكون oAuth2 Google مش ايميل وباسورد اقتباس
السؤال
Kirolos Nagy2
كيف احفظ بيانات قادمه من node.js backend من مكتبه passport الي cookies frontend
تم التعديل في بواسطة Kerollos Nagyتلقائي بدون اي function في الفرونت
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.