• 0

خطأ The page has expired في لارافيل

أحاول تسجيل الدخول عن طريق form في لارافيل وبعد الضغط على زر تسجيل الدخول (submit) يظهر لدي الخطأ التالي:

The page has expired due to inactivity. Please refresh and try again.

ولكنني قمت بإضافة CSRF token ضمن الفورم:

<form class="form-horizontal registration-form" novalidate method="POST" action="{{ route('register') }}">
        {{ csrf_field() }}
        
</form>

كيف يمكنني حل هذه المشكلة؟

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

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


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

يمكنك تحديث الصفحة مرة أخرى, ولكن تحدث هذه المشكلة من التحقق من رمز CSRF الذي فشل, لذلك إما أنك لا تنشر رمز CSRF أو تنشر CSRF غير صحيح, السبب في أنها تعمل مع GET هو أنه بالنسبة لمسار GET في Laravel, لا يوجد رمز CSRF منشور. يمكنك إما نشر رمز CSRF مميز في النموذج الخاص بك عن طريق 

{{ csrf_field() }}  

أو 

@csrf

أو في مسار 

app/Http/Middleware/VerifyCsrfToken.php

يمكنك استبعاد المسار الذي تريده من التحقق من CSRF من خلال وضعه في 

protected $except = [
    'your/route'
];

 

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


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

اللارافيل تستخدم csrf token للتأكد من أن البيانات القادمة إلى الserver قادمة من الform حتى تمنع عمليات التهكير ويتم ذلك عندما تقوم بوضع @csrf والذي سيتم تحويله إلى input يحتوي على كود معين يتم مقارنته في الserver للتأكد من أن الطلب قادم فعلاً من مصدره والإشكال الذي ظهر لك يحدث إما لأنك لم تقم بتضمين الcsrf او لأن الcsrf token قد انتهت صلاحيته لأنك اخذت وقتاً طويلاً 

لتضمين الcsrf يجب عليك فعل التالي:

<form action="" method="post">
  @csrf
  
</form>  

 

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

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


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

يظهر هذا الخطأ بعد التحقق والمشكلة هنا في إعدادات الجلسات session في مشروعك. يجب التأكد من أن session driver يقوم بالحفظ ضمن ملف file وليس array.

فبشكل افتراضي يمكن أن يتم استخدام المصفوفات للتجربة فقط ولكن عند الحاجة لنشر المشروع يجب تغييرها ليتم حفظ الجلسات ضمن ملف بدلاً من ذلك. والتأكد أيضاً من وجود الملف ومساره الصحيح والصلاحيات على هذا الملف بأن يكون قابل للكتابة:

is_writable(config('session.files'))

وأيضاً يجب التحقق من الكود الموجود ضمن config/session.php ونوع الاتصال في حال كان HTTPS (SSL/TLS) للنطاق الذي يحوي المشروع يجب تعديل sessions.secure إلى القيمة true.

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

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


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

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

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

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


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

تسجيل الدخول

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


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