جلوگیری از بروز TokenMismatchException در زمان خروج از سیستم در لاراول

در زمان خروج از سیستم، اگر توکن کاربر منقضی شود و با توکن CSRF مطابقت نداشته باشد، یک TokenMismatchException رخ خواهد داد. همراه لیداوب باشید تا نحوه حل این مشکل را فرا بگیرید.


در هنگام پر کردن یک فرم در سایت، در صورت توقف بیش از حد در فرم یا ترک سیستم در حالتی که فرم باز گذاشته شده است، شما ممکن است یک TokenMismatchException دریافت کنید، زیرا توکن کاربر منقضی می‌شود و با توکن CSRF مطابقت ندارد. این مشکل بروز exception در زمان خروج از سیستم یا logout نیز ممکن است رخ دهد. چگونه می‌توان از بروز این مشکل در زمان logout جلوگیری کرد؟

مسلما اگر شما چندین ساعت، کاری روی صفحه سایت انجام ندهید و سپس بر روی دکمه خروج از سیستم یا logout کلیک کنید، ممکن است چیزی شبیه به مورد زیر را مشاهده کنید:

logout-TokenMismatchException

مقالات مرتبط در لیداوب:

برای جلوگیری از بروز این مشکل، می‌توانیم exceptions را به URLهایی که نمی‌خواهیم حفاظت CSRF را داشته باشند، اضافه کنیم. آرایه خاصی برای این کار در app/Http/Middleware/VerifyCsrfToken.php وجود دارد:

class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
];
}

بنابراین، کاری که باید انجام دهیم این است که logout را به این آرایه اضافه کنیم:

protected $except = [
    '/logout'
];

البته، می‌توانید URLهای بیشتری را در این قسمت اضافه کنید اما باید مراقب بود چون حفاظت CSRF یک بحث بسیار مهم در امنیت سایت شما به شمار می رود.

 آموزش‌های بیشتر در لیداوب:

آموزش پایه لاراول ۵,۵

آموزش CSS

آموزش HTML مقدماتی

لیداوب نکات کاربردی و مفید در زمینه برنامه نویسی، طراحی سایت و سئو را در اختیار کاربران خود قرار می‌دهد. شما می‌توانید سوالات و نظرات خود را در بخش کامنت‌ها با ما در میان بگذارید.