Prevent TokenMismatchException for HTTP OPTIONS requests
`OPTIONS` HTTP requests should be treated in the same way than `GET` requests by the `VerifyCsrfToken` middleware. Otherwise, an exception is thrown, thus preventing any `OPTIONS` route to work.
This commit is contained in:
parent
27aa85ccdb
commit
70d516b7ce
|
@ -17,7 +17,7 @@ class VerifyCsrfToken implements Middleware {
|
||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next)
|
public function handle($request, Closure $next)
|
||||||
{
|
{
|
||||||
if ($request->method() == 'GET' || $this->tokensMatch($request))
|
if ($this->isReadOnly($request) || $this->tokensMatch($request))
|
||||||
{
|
{
|
||||||
return $next($request);
|
return $next($request);
|
||||||
}
|
}
|
||||||
|
@ -36,4 +36,15 @@ protected function tokensMatch($request)
|
||||||
return $request->session()->token() == $request->input('_token');
|
return $request->session()->token() == $request->input('_token');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the HTTP request uses a ‘read’ verb.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function isReadOnly($request)
|
||||||
|
{
|
||||||
|
return in_array($request->method(), ['GET', 'OPTIONS']);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue