هل تستخدم cookie-parser؟
إعجاب واحد (1)
استخدام عمليات إعادة التوجيه بدلاً من ملفات تعريف الارتباط
مرحباً بالجميع، شكراً لكل التوجيهات، لقد علقت في نهج ملفات تعريف الارتباط لأن خادمي موجود على نطاق مختلف وسفاري في حرب مع ملفات تعريف الارتباط الخاصة بالجهات الخارجية. لقد قمت بكتابة سؤال وجواب على Stack Overflow مع نهج إعادة توجيه، استمتعوا بالمصادقة! ![]()
أود فقط أن أقول إنني سأكون مهتمًا جدًا أيضًا بدمج سهل لمصادقة Firebase في Discourse.
حسنًا، ما هو الغرض من القيام بذلك بالضبط؟ ألا تستخدم مصادقة Firebase في مكان آخر في تطبيق ويب بخلاف Discourse؟ أنا أستخدمها ولا أريد العبث بهذا الإعداد، أفضل أن يكون “محليًا” (Authentication State Persistence | Firebase)
بعض الملاحظات للآخرين الذين يسلكون هذا المسار:
- قم بتسمية ملف تعريف الارتباط الخاص بك “__session” إذا كنت تستخدم استضافة Firebase. تقوم قواعد إعادة الكتابة بتصفية جميع ملفات تعريف الارتباط الأخرى لأغراض التخزين المؤقت.
- تريد استبدال الكود ذي الصلة أعلاه بشيء مثل هذا حتى لا تسمح بالبريد الإلكتروني غير المتحقق منه (خطر أمني كبير).
auth
.verifyIdToken(idToken)
.then(function (decodedClaims) {
// في هذه الحالة، نفرض أن المستخدم سجل الدخول في آخر 5 دقائق.
// ولديهم بريد إلكتروني تم التحقق منه
if (
decodedClaims.email_verified &&
new Date().getTime() / 1000 - decodedClaims.auth_time < 5 * 60
) {
return auth.createSessionCookie(idToken, { expiresIn });
}
throw new Error("UNAUTHORIZED REQUEST!");
})
- يوجد إعداد “إعادة توجيه تسجيل الخروج” في Discourse. من المحتمل أن ترغب في استخدام هذا للوصول إلى عنوان URL يقوم بمسح ملف تعريف الارتباط “__session” (لا يمكن القيام بذلك إلا عبر استدعاء واجهة برمجة تطبيقات خلفية) حتى لا يتم تسجيل دخول المستخدم تلقائيًا بنفس المستخدم السابق عندما يحاول تسجيل الدخول مرة أخرى.
إعجاب واحد (1)
أين يمكنك تطبيق هذا الرمز؟