【问题标题】:Laravel controller return to routeLaravel 控制器返回路由
【发布时间】:2016-09-30 15:16:29
【问题描述】:

我正在我的控制器中运行一个查询,它返回一个回调 url 我想将此 url 设置为我的家庭控制器,以便我可以处理回调中返回的数据。

$loginUrl = $helper->getLoginUrl('http://myapp.app/home', $permissions);

我希望这个 url 成为我的路由的控制器,目前这个路径在 url 中返回正确的数据但是我收到以下错误 -

Cross-site request forgery validation failed. The "state" param from the URL and session do not match.

有没有办法在不出现CSRF 错误的情况下返回网址。

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    来自 App\Http\Middleware\VerifyCsrfToken.php

    您可以定义一个排除 csrf url 的规则,例如:

    protected $except = [
        'vips/pay-result',
        'wechat/access-entrance',
        'wechat-mp/callback',
        'admin/announcements_image_upload'
    ];
    

    【讨论】:

    • 你能用通配符例外吗? '/home?*'
    • @SamXronn,不,你可以检查父类,它不检查 pregs
    【解决方案2】:

    我的 CSRF 问题是指它在回调发生时尝试使用的会话。

    bootstrap/app.php 内部,我刚刚在应用返回之前在顶部开始了一个会话,例如

    session_start();
    

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多