我使用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中实现它。

09-28 02:15