العربية
  • 404-not-found
  • logto-unknown-session
  • authorization-code-flow

لماذا قد ترى خطأ 404 عند تسجيل الدخول إلى التطبيق المتكامل مع Logto

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

Charles
Charles
Developer

الخلفية

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

لقطة شاشة لخطأ 404 على Logto لم يتم العثور على الجلسة

يمكن أن يحدث هذا عند الوصول المباشر إلى صفحة تسجيل الدخول (مثلاً، 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 إلى أي تطبيق يجب أن يعاد توجيه المستخدم.

أفكار إضافية لتحسين التجربة

نحن نحاول تحسين تجربة المستخدم، على الأقل بإضافة رسائل مفيدة على صفحة "/unknown-session"، تشرح سبب الخطأ 404 وتوضح للمستخدمين ما يجب فعله بدلاً من أن يشعروا بالارتباك وعدم الفهم.

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

الخاتمة

عادةً ما يكون خطأ 404 لم يتم العثور عليه (جلسة غير صالحة) على صفحة "/sign-in" ناتجًا عن الوصول المباشر إلى عنوان URL لصفحة تسجيل الدخول، مما يتجاوز تدفق تسجيل الدخول العادي للتطبيق الذي يُشغل طلب التفويض، وبالتالي لم تُنشأ جلسة صالحة (تدار عبر الكوكيز).

من خلال فهم هذا التدفق وأهميته، يمكنك تجنب الخطأ والتمتع بتجربة تسجيل دخول سلسة مع التطبيق المتكامل مع Logto الخاص بك.

يرجى عدم التردد في الاتصال بنا إذا كنت ترغب في مشاركة أفكارك.