【问题标题】:How to add VerifyCsrfToken exception for api in Laravel?如何在 Laravel 中为 api 添加 VerifyCsrfToken 异常?
【发布时间】:2019-07-06 22:02:23
【问题描述】:

我想在 laravel 中用 Echo 实现套接字。我的主要 laravel 项目旁边有一个 API。在我的 laravel 项目中,所有事件都被触发并且套接字正常工作。但在 API 中它不起作用并返回 419 错误。 Client can not be authenticated, got HTTP status 419。我发现它需要 CSRF 令牌,但是在 API 中我们没有它。顺便说一句,当我在 App\Http\Kernel.php 中评论 \App\Http\Middleware\VerifyCsrfToken::class 时,它可以工作!

如果用户向 API 发送请求以不验证其 CSRF 令牌,我如何将其添加到异常中?

【问题讨论】:

    标签: php laravel api echo csrf


    【解决方案1】:

    顺便说一句,您可以将要作为例外的 URI 放入此文件 app/Http/Middleware/VerifyCsrfToken.php 的以下行:

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        //
    
    ];
    

    $except 属性下的那些 URI 将被忽略

    【讨论】:

    • 我应该在这里放什么?!如果我将 uri 放在网站端,它也会忽略对网站的验证。但是我只希望它用于 API。
    • 您在 API 路由文件中定义的 url 定义。您要添加多少条路线例外?
    • 全部。因为在 API 中我们没有 laravel csrf 令牌。
    • 默认情况下,API路由没有VerifyCsrfToken中间件绑定到其
    • 我的惊喜就在这一点上。我不知道为什么它需要VerifyCsrfToken。
    猜你喜欢
    • 2015-12-21
    • 2020-09-14
    • 2020-11-08
    • 1970-01-01
    • 2018-02-20
    • 2015-11-14
    • 2018-05-24
    • 2015-07-05
    • 1970-01-01
    相关资源
    最近更新 更多