【问题标题】:Where should i place the route我应该把路线放在哪里
【发布时间】:2016-12-21 16:26:00
【问题描述】:

我有这个控制器:

 public function watchlist(Request $request)
    {
        if($request->ajax())
        {
            $id=$request->id;
            if($id)
            {
                $add=new Watchlist();
                $add->product_id=$id;

                if(!Auth::check())
                {            
                    echo json_encode(FALSE);die;                        
                }

                $add->user_id=Auth::user()->id;      
                $add->save();        
                echo json_encode(TRUE);die;
            }

            echo json_encode(FALSE);die;
        }
    }

路线是:

Route::post('/product/watchlist', 'ProductController@watchlist');

我应该把这条路线放在哪里? 如果我将此路由放在身份验证和网络中间件组下,我得到了

令牌不匹配异常。

Route::group(['middleware' => ['web']], function () {
    Route::get('/product/addform', 'ProductController@addform');    
    Route::post('/product/add', 'ProductController@add');

   Route::group(['middleware' => ['auth']], function () {
        Route::get('/','ProductController@index');  
        Route::get('/product','ProductController@index');               
        Route::post('/product/watchlist', 'ProductController@watchlist'); //here
    });
});

如果我把它放在 web 和 auth 中间件组之外

我无法获得所需用户的 ID。

如果我把它放在 web 中间件组之外的新 auth 中间件组下

 Route::group(['middleware' => ['auth']], function () {
                 Route::post('/product/watchlist', 'ProductController@watchlist');
    )};    

我明白了

未经授权

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.2


    【解决方案1】:

    当您在控制器中使用 用户会话 时,请确保您的路由应放在 web 中间件下,以便正确处理用户会话。

    但是,为了使其正常工作,您需要确保将 XSRF 令牌 与 AJAX 请求一起传递。你会在 Laravel 创建的 XSRF-TOKEN cookie 中找到令牌。您需要在请求的 X-XSRF-TOKEN 标头中传递它。

    关于 auth 中间件,您应该将其添加到请求中,仅用于需要用户进行身份验证的请求。

    【讨论】:

    • 将 XSRF 令牌与您的 AJAX 请求一起传递。有什么链接可以解释这个吗?
    • 这取决于你使用什么向后端发送请求
    • @yash Chaudhary laravel 5.2 是。
    • 好的。明白了..` data: { "_token": "{{ csrf_token() }}", "id": id }` 是我需要的。
    猜你喜欢
    • 2020-09-30
    • 1970-01-01
    • 2016-08-25
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2017-11-30
    相关资源
    最近更新 更多