اذهب إلى المحتوى

السؤال

نشر

أحاول تسجيل الدخول عن طريق 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>

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

Recommended Posts

  • 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>  

 

  • 0
نشر

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

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

is_writable(config('session.files'))

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...