【问题标题】:CSRF with REST API laravelCSRF 与 REST API laravel
【发布时间】:2017-07-11 00:02:06
【问题描述】:

我是 laravel 的新手。我想用 Laravel 创建 REST API,为此我使用了 Dingo。 现在我的问题是当我发送帖子请求时

CSRF token mismatch is error is throwing

对于网页版,我们使用 CSRF 令牌来验证请求..

谁能帮我解决 laravel 5.1 中的 CSRF 令牌不匹配错误。

提前谢谢...

【问题讨论】:

  • 你添加了 csrf_token() 吗?
  • 如果你愿意,你可以从 CSRF 验证中排除特定的 url。
  • file 中添加排除的 URL。

标签: rest laravel-5 csrf dingo-api


【解决方案1】:

在您的app\http\Middleware\VerifyCsrfToken.php 文件中。

编辑$except 属性:

protected $except = [
  'yourapi/*' 
];

这将从 CSRF 验证中排除您的 api 路由。并为您的前端等其他事情保留它。

【讨论】:

    【解决方案2】:

    不要在 API 中使用 CSRF 令牌。您应该从 app/Http/Kernel.php(第 20 行)中删除中间件,并为您的 API 使用不同的身份验证方法。

    【讨论】:

    • 感谢您的帮助。我已删除 CSRF 令牌并使用 jWT 进行令牌身份验证
    • 这不是这个问题的唯一答案。 RESTful API 应该是无状态的是普遍的论点,但无状态并不总是比安全更重要。这篇文章值得一读stormpath.com/blog/…
    • “不要在 API 中使用 CSRF 令牌”也可以使用参考。
    【解决方案3】:

    您可能只是没有在您的 API 请求中将 CSRF 令牌传递给 Laravel,从而导致异常。

    【讨论】:

    • 你知道我如何获取 CSRF 令牌,因为我正在使用邮递员发送 post 请求
    • 您可以添加一个为您返回 CSRF 令牌的路由,但您应该查看 API 路由的 csrf 排除。
    猜你喜欢
    • 2016-09-05
    • 2015-03-21
    • 2016-02-14
    • 2021-05-04
    • 2018-02-06
    • 2017-01-21
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多