【问题标题】:Trying to get property of non-object in VerifyCsrfToken.php (line 156) Laravel 5.4试图在 VerifyCsrfToken.php(第 156 行)Laravel 5.4 中获取非对象的属性
【发布时间】:2018-02-21 07:46:30
【问题描述】:

我有一个在我的 Laravel 应用程序中执行路由 API 的 Shell 脚本。但是,当它执行它时,我有一个来自 Token 的错误。

试图获取非对象的属性 在 VerifyCsrfToken.php(第 156 行)

路由是到http://localhost:8000/api/soap。 在 SoapController 中,我重定向到应用程序内部的其他路由:

return redirect('/control_fich/'.$id_user.'/'.$date_utc);

路线是:

Route::get('control_fich/{id}/{date}','ControlFichController@index');

我把这条路由怎么放在中间件VerifyCsrfToken.php中

     namespace App\Http\Middleware;

     use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

 class VerifyCsrfToken extends BaseVerifier
 {
/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
protected $except = [
    'dropdown',
    'control_fich/*',
];
 }

但错误仍在继续。我必须做什么才能从 API 控制器执行内部控制器?

谢谢

【问题讨论】:

  • 您的路由使用哪个中间件?网络?
  • 这是中间件:Route::group(['middleware' => ['auth']], function() { });
  • 获取路由无论如何都不需要 csrf 令牌
  • 你能显示你的VerifyCsrfToken类代码吗?
  • 好的。我编辑了我的帖子。

标签: php laravel api


【解决方案1】:

嗯,根据doc

您应该将VerifyCsrfToken class 中的代码更改为:

protected $except = [
   'dropdown',
   'control_fich/*',
];

【讨论】:

  • 命名空间 App\Http\Middleware;使用 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken 作为 BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * 应该从 CSRF 验证中排除的 URI。 * * @var array / protected $except = [ 'dropdown', 'control_fich/', ]; }
猜你喜欢
  • 2018-01-01
  • 2018-04-05
  • 2017-11-05
  • 2017-12-27
  • 2018-12-03
  • 1970-01-01
  • 2018-08-27
  • 2017-09-24
  • 2015-08-19
相关资源
最近更新 更多