在我的Laravel网站之一中,调用登录API时遇到错误419。在我的搜索网络路线下方:
Route::get('/{address_1}/{address_2?}/{address_3?}/{address_4?}');
Route::post('/{address_1}/{address_2?}/{address_3?}/{address_4?}');
并在API路由下方:
Route::post('login', 'Auth\PassportController@login');
Route::post('register', 'Auth\PassportController@register');
答案 0 :(得分:0)
在Laravel中,一个419 HTTP错误代码通常表示您缺少CSRF令牌。
如果“ API”路由:
Route::post('login', 'Auth\PassportController@login');
Route::post('register', 'Auth\PassportController@register');
位于web.php
文件中,则可能是因为RouteServiceProvider
将路由包裹在web.php
中间件中的web
文件中,该中间件已启用CSRF中间件。 / p>
在这种情况下,您将需要在POST请求中包括CSRF令牌,将这些路由移动到api.php
路由文件,或将register
端点添加到{{1 }} $excludes
中间件的数组。
更新 实际上,您的搜索路线会引起很多麻烦。 考虑到它们可以将任何 URL与一到四个段匹配,因此您的API路由将被这些吞噬。 您需要做的是更改RouteServiceProvider以最后注册网络路由,然后将搜索路由置于最后。 这样,您的预定义路径将在“全部捕获”搜索路径之前被注册。