Laravel projesinde başıma gelen bir durum var. Mesela bir kullanıcı login oldu. Ancak çıkışa bastı. Ama bu çıkış butonuna 2 kere bastı ise laravel 419 hatasına düşüyor. Bu durum biraz can sıkıcı çünkü login sayfasına atmak yerine direk hataya düşüyor. Aşağıdaki yol ile laravel 419 page expired hatası durumunda hata sayfası yerine login sayfasına yönlendirme yapacağız.
Bunun içinde ben laravel içine 419 durumu oluşursa siteyi login sayfasına yönlendir şeklinde bir kod ekledim. Bu kod ile eğer 419 hatasına düşerse site direk olarak logine gidiyor. 419 hatasının çözümünü ben bu şekilde buldum. Tabi siz isterseniz ana sayfaya ya da başka bir sayfaya yönlendirme yapabilirsiniz.
app\Exceptions\Handler.php dosyasını açın. Sonrasında şu bloğu bulun.
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
Yukarıdaki koda küçük bir ekleme yapın şu kodun son hali şu şekilde;
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
/**419 Hatasında Yönlendir */
if ($exception instanceof \Illuminate\Session\TokenMismatchException) {
return redirect('/login');
}
return parent::render($request, $exception);
}
Bu şekilde eğer laravel 419 hatası verirse otomatik olarak login sayfasına gidecek. İsterseniz return redirect(‘/login’); kısmını değiştirerek başka sayfalara da yönlendirme yapabilirsiniz.
teşekkürler, çok yararlı oldu.