我试着与我用Laravel构建的REST API交谈.但由于令牌不匹配,与postman 的通话被拒绝.我想我需要在标题中包含CSRF令牌.但我需要加密的吗?当我插入这个令牌时,我仍然会得到一个错误,即令牌不匹配.

我通过以下方式检索我的令牌:

$encrypter = app('Illuminate\Encryption\Encrypter');
$encrypted_token = $encrypter->encrypt(csrf_token());
return $encrypted_token;

但这是不是每次刷新都会改变?

推荐答案

如果不使用表单(例如API),可以按照以下步骤操作:

基本上,将以下内容添加到您的Blade 或小 twig 标题中

<meta name="csrf-token" content="{{ csrf_token() }}">

Install Postman Interceptor if not already installed, and turn it on

然后,在浏览器中登录该站点(您需要获得授权),然后判断元素或查看源以检索令牌

在Postman中,根据需要设置GET/POST等,并在标题中创建一对新的

X-CSRF-TOKEN        tokenvaluetobeinserted235kwgeiOIulgsk

有些人建议在测试API时关闭CSRF令牌,但您并不是在真正测试它.

如果您确实发现仍然存在错误,请使用preview判断回复,因为Laravel倾向于非常明确地显示错误消息.如果什么都没有回来,判断一下你的php_error.log(不管它叫什么).


ps Oct 2018 - I now user Laravel Passport for handling API registration, logins and user tokens - worth a look!

Laravel相关问答推荐

使用MAATWebSite/EXCEL导入Exel时,不会创建Laravel模型

为什么只删除了最后一个Like,而没有删除选中的?

如何在 Laravel 中获取特定月份的最后一个日期?

根据路径的开头重定向

Laravel Livewire 组件属性在 div 类中为空

Laravel init 查询多种用途

Laravel 5.3:语法错误或访问冲突:1463 HAVING 子句中使用了非分组字段距离

Laravel 5.2 无法打开 laravel.log

Laravel 保存一对多关系

调用未定义函数 Illuminate\Encryption\openssl_decrypt()

查询 Laravel Select WhereIn 数组

在 Laravel 5 中扩展请求类

如何比较laravel中的两个加密(bcrypt)密码

如何在没有 Eloquent 的情况下创建 Laravel 模型?

在 Laravel 中下载后如何重定向?

413请求实体在laravel homestead for windows中太大的nginx服务器

Laravel 迁移命名约定

升级到 laravel 5.3 后错误 datetime format: 1292 Incorrect datetime value: '0000-00-00 00:00:00'

我在哪里放置可以显示 Flash 消息的 Laravel 4 辅助函数?

控制器中的artisan调用输出?