我使用spring boot创建了一个后端,其中需要csrf令牌。
我正在尝试使用邮递员测试我的api。
当我尝试调用我的API时,出现此错误消息
{
"timestamp": 1427179894398,
"status": 403,
"error": "Forbidden",
"message": "Expected CSRF token not found. Has your session expired?",
"path": "/xxxx"
}
那么,如何解决这个问题呢?
最佳答案
您必须“猜测” CSRF令牌,该令牌很可能只是在表单内部呈现的隐藏输入。
因此,最直接的方法是通过一个请求获取带有表单的页面,然后解析页面以从表单的输入中获取CSRF令牌,然后在下一个请求中将其发送给其他数据。
但这是一种棘手且不稳定的方式(尤其是在具有不同形式和字段的HTML代码中查找CSRF令牌)。
更好的方法是为您的端点实现“ API模式”,在该端点上一些秘密密钥将通过标头传递并禁止CSRF检查。实际上不知道如何以最少的努力在Spring Boot中实现它。