TokenMismatchException for API in Laravel 5.2.31

时光总嘲笑我的痴心妄想 提交于 2019-12-01 17:45:17

Open your app\http\Middleware\VerifyCsrfToken.php file.

Here edit $except property with:

protected $except = [
  'api/*' 
];

This will exclude your api routes from CSRF verification.

TokenMismatchException generally occurs when csrf token not present in form or expired csrf token or tamperd csrf token.

First:

Make sure you added in form

<input type="hidden" name="_token" value="{{ csrf_token() }}">

Or

Clear try with clear cache for view files

Or

Check if any redirection are there in flow

Finally if everything fails if you want to customize this error . You can handle this error in hanlers. check [this][1]

In your route.php set below code

Route::group(['prefix' => API_PREFIX,'middleware' => 'auth.api'], function() 
{
 // Your Route
}

In your kernal.php set below middleware, it is good to use a diffrent middleware for api.

'auth.api' => \App\Http\Middleware\ApiAuthenticate::class,

Add new middleware ApiAuthenticate.php

class ApiAuthenticate
{
    public function handle($request, Closure $next, $guard = 'api')
    {
        if (\Auth::guard($guard)->guest()) {
            return response("Invalid user");
        }
        else {
            return $next($request);  
        }
        return $next($request);
    }
}

Check your get and post methods too

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!