Laravel 5.4 post request token mismatch
我正在学习在Laravel中创建API。我创建了一个CRUD控制器,并且有一个空的存储功能:
1 2 3 4
| public function store(Request $request)
{
dd('store');
} |
当我尝试向Postman发出发帖请求时,出现令牌不匹配异常:
1 2
| "Illuminate\\Session\\TokenMismatchException">TokenMismatchException in
"/Users/andrei/Desktop/api.dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php line 68">VerifyCsrfToken.php line 68 |
我没有post方法放置{{csrf ..}}的形式。如何解决呢?谢谢!
- stackoverflow.com/questions/31729415/…
-
例如,如果我有路由:本地主机:8000 / api / v1 /课程用于获取和发布,除了csrf之外我该输入什么?
-
当前文档链接:laravel.com/docs/master/csrf#csrf-clusion-uris
-
@Samsquanch bro您的用户名,100
对于API,您应该使用VerifyCsrfToken中间件中的$except属性将它们从CSRF中排除。
-
如果我的路线是localhost:8000 / api / v1 /教训,我应该在$ except变量中放什么?
-
我会这样做,以排除所有包含api/的路由:protected $except = [ 'api/*' ];
-
这解决了我的问题!随着我获得更多评分,我会投票
如果您使用表单提交,则必须使用{{ csrf_field() }},它将被呈现为<input type='hidden' name='_token' value="tokenvalueofcharsans numbers" />。但是,如果您仅发送ajax请求,但无法在请求中设置{{ csrf_field() }},则必须执行以下操作:
1-通过在app/Http/Middleware/VerifyCsrfToken中间件的$except变量中添加您的url,从csrf验证中排除您的url。
2-找到一种方法来验证csrf在此Rails中不受影响。
- 例如,如果我有路由:localhost:8000 / api / v1 /教训课程,我应该把$ except放什么?
-
将您在App/Http/routes.php中放入的url路由作为Route::post('**yourroute**', 'YourController@yourMethod')。提到的你的路线