【问题标题】:Laravel api.php middleware [closed]Laravel api.php 中间件 [关闭]
【发布时间】:2019-12-31 12:11:57
【问题描述】:

我有用于将数据返回到数据表的 API 路由。我想应用管理员中间件或找到一种方法来防止 API 在您输入 http://localhost:8000/api/questions 时受到攻击

Route::group(['prefix' => 'admin','middleware' =>'admin:admin'],function (){
     Route::get('news', 'NewsController@apiNews')->name('api.news');
     Route::get('partners', 'PartnersController@apiPartnters')->name('api.partners');
}

【问题讨论】:

  • 您能进一步解释一下吗? “不工作”是什么意思?应用任何中间件的代码在哪里?

标签: php laravel api middleware


【解决方案1】:

应该是

Route::group(['prefix' => 'admin','middleware' => ['admin:admin']],function (){
     Route::get('news', 'NewsController@apiNews')->name('api.news');
     Route::get('partners', 'PartnersController@apiPartnters')->name('api.partners');
}

不是这个

Route::group(['prefix' => 'admin','middleware' =>'admin:admin'],function (){
     Route::get('news', 'NewsController@apiNews')->name('api.news');
     Route::get('partners', 'PartnersController@apiPartnters')->name('api.partners');
}

要了解更多信息,请访问this

谢谢

【讨论】:

    【解决方案2】:

    我的routes/web.php

    Route::group(['middleware' => ['auth:reader']], function() {
      Route::resource('entries','EntriesController');
    });
    

    auth 是中间件,reader 是可选参数(用于基于角色的身份验证系统)

    另外我在每个控制器的构造函数中写了:

    class EntriesController extends Controller
    {
      public function __construct()
      {
         $this->middleware('auth:admin');
      }  
    
      ...foobar...
    
    }
    

    我关注了Dan Englishby on codewall

    【讨论】:

      【解决方案3】:

      打开 NewsController 和 PartnersController 并添加

      首先是内部类方法

      public function __construct(){
       $this->middleware('admin');
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-24
        • 2021-03-21
        • 2021-10-11
        • 2019-05-08
        • 2019-02-04
        • 1970-01-01
        • 2019-04-25
        • 2018-04-28
        相关资源
        最近更新 更多