لماذا قد ترى خطأ 404 عند تسجيل الدخول إلى تطبيق مدمج مع Logto
هل سبق وأن صادفت رسالة خطأ "404 لم يتم العثور عليه" عند محاولتك تسجيل الدخول إلى تطبيق يستخدم Logto ؟ يوضح هذا المقال سبب حدوث ذلك وما يمكنك القيام به لتجنبه.
الخلفية
هل حاولت من قبل تسجيل الدخول إلى تطبيق يستخدم Logto للمصادقة وواجهت رسالة خطأ "404 غير موجود"؟ أو هل أبلغ أي من مستخدمي تطبيقك النهائيين عن المشكلة ذاتها؟

يمكن أن يحدث هذا إذا دخلت مباشرة إلى صفحة تسجيل الدخول (مثلًا، https://your-app.com/sign-in
) دون المرور بتدفق تسجيل الدخول المقصود من خلال تطبيقك.
إليك السبب:
أهمية تدفق OIDC
يعتمد Logto على بروتوكول OpenID Connect (OIDC) من أجل مصادقة آمنة. عند تسجيل الدخول عبر التدفق العادي للتطبيق (عادةً بالنقر على زر تسجيل الدخول من داخل التطبيق)، يقوم التطبيق ببدء تواصل مع خادم OIDC الخاص بـ Logto. يُسمى هذا التواصل بــ "طلب التفويض"، وهو مهم لأنه يقوم أولًا بتنفيذ مجموعة من عمليات التحقق ضد المتصل، ثم ينشئ جلسة آمنة بين متصفحك والخادم (تُدار عبر الكوكيز).
تحدث المشكلة عندما ينتقل المستخدمون مباشرة إلى صفحة “/sign-in”، لأن ذلك يتجاوز منطق التطبيق الداخلي الذي يُطلق طلب تفويض OIDC. ونتيجة لذلك، لا يتعرف الخادم على متصفحك بصفته لديه جلسة صحيحة، مما يؤدي بدوره إلى ظهور خطأ 404.
الحل
هناك طريقتان رئيسيتان لتجنب هذه المشكلة:
استخدم دائمًا زر تسجيل الدخول في التطبيق
بدلًا من الدخول مباشرةً إلى صفحة "/sign-in"، اتبع تدفق تسجيل الدخول الطبيعي الذي يوفره التطبيق. فعند النقر على زر "تسجيل الدخول" داخل التطبيق، يتم بدء طلب التفويض OIDC الصحيح وإنشاء الجلسة اللازمة.
إعادة توجيه المستخدمين تلقائيًا
إذا كان لديك تطبيق واحد فقط في مثيل Logto الخاص بك، يمكنك محاولة تنفيذ منطق يعترض محاولات المستخدمين للوصول إلى صفحة "/sign-in" بدون جلسة صالحة، وإعادة توجيههم تلقائيًا إلى الصفحة الرئيسية للتطبيق حيث يُعرض زر تسجيل الدخول.
ولمعالجة هذا، قدّم Logto إعداد "رابط إعادة التوجيه عند الجلسة المجهولة". عند تعيين هذا الرابط، سيعيد Logto تلقائيًا توجيه المستخدمين إلى الصفحة المحددة بدلًا من إظهار خطأ 404. على سبيل المثال، يمكنك إعادة توجيههم إلى الصفحة الرئيسية لتطبيقك أو شاشة تسجيل دخول مخصصة. بعد إعادة التوجيه، يجب على تطبيقك العميل بدء تدفق تسجيل دخول جديد.
لتكوين ذلك، انتقل إلى وحدة تحكم Logto ضمن Logto Cloud > تجربة تسجيل الدخول > التسجيل وتسجيل الدخول > الخيارات المتقدمة وادخل رابط الاستعادة المناسب لك.
على سبيل المثال، يقوم Logto Cloud بتعيين هذا على https://cloud.logto.io/
. بعد التعيين، أي مستخدم يصل إلى "/sign-in" دون جلسة صالحة سيتم تحويله إلى ذلك الرابط لإعادة بدء عملية المصادقة.
أفكار إضافية لتحسين تجربة الاستخدام
نسعى لتحسين تجربة المستخدم، على الأقل عبر إضافة رسائل مساعدة في صفحة "/unknown-session"، لشرح سبب خطأ 404 وإعلام المستخدم بما يمكن فعله بدلًا من تركه في حيرة وارتباك. على سبيل المثال، يدعم Logto إضافة بريد دعم مخصص وعنوان موقع ويب لصفحات أخطاء تسجيل الدخول. بالتالي سيظهر للمستخدم الذي يواجه خطًأ بيانات التواصل الخاصة بك ليتمكن من الحصول على المساعدة.
قد نُفكّر أيضًا في تنفيذ تدابير أمان إضافية للحد من المشكلة، مثل إعادة التوجيه تلقائيًا إلى "URI إعادة توجيه تسجيل الخروج" (عادة الصفحة الرئيسية للتطبيق) عندما يتم اكتشاف تطبيق واحد فقط لمثيل Logto الحالي، أو إضافة إعدادات إضافية لإظهار رسائل مخصصة في مثل هذه الحالات.
خلاصة
خطأ 404 غير موجود (الجلسة غير صالحة) في صفحة "/sign-in" غالبًا ما يحدث بسبب الدخول المباشر إلى رابط تسجيل الدخول دون المرور بتدفق تسجيل الدخول الطبيعي للتطبيق الذي يُطلق طلب التفويض، وبالتالي لا يتم إنشاء جلسة صالحة (تُدار عن طريق الكوكيز).
من خلال فهم هذا التدفق وأهميته، يمكنك تجنب الخطأ والاستمتاع بتجربة تسجيل دخول سلسة مع تطبيقك المدمج بواسطة Logto.
لا تتردد في التواصل معنا إذا كان لديك أفكار ترغب بمشاركتها.