首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Laravel控制器中获取中间件名称

在Laravel控制器中获取中间件名称
EN

Stack Overflow用户
提问于 2018-07-07 19:28:11
回答 3查看 3.8K关注 0票数 0

我在申请时遇到了一个问题。假设有两个中间件1)用户2)管理员可以在我的控制器中获得我认证的中间件吗?我使用的是Laravel 5.4。这是我的路线声明

代码语言:javascript
复制
Route::group(['prefix' => 'user'], function () {
    Route::group(['middleware' => ['auth:api']], function () {
        Route::post('shop/store', 'ApiShopController@shopStore');
        Route::post('shop/update', 'ApiShopController@shopUpdate');
    });
});
Route::group(['prefix' => 'admin'], function () {
    Route::group(['middleware' => ['auth:admin-api']], function () {
        Route::post('shop/store', 'ApiShopController@shopStore');
        Route::post('shop/update', 'ApiShopController@shopUpdate');
    });
});

这是我的中间件声明

代码语言:javascript
复制
'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
        'admin-api' => [
            'driver' => 'token',
            'provider' => 'admins',
        ],
]
EN

回答 3

Stack Overflow用户

发布于 2018-07-07 19:32:01

您应该使用Auth::guard('role')

票数 1
EN

Stack Overflow用户

发布于 2018-07-07 19:31:26

您可以将其包含在您的Controller构造函数中,以便直接在中间件中进行分配,例如:

代码语言:javascript
复制
class HomeController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }
    public function index()
    {
        return view('home');
    }
}

你也可以在你的控制器中运行这个方法,但是我还没有检查它:

代码语言:javascript
复制
$middleware = $this->getMiddleware();

这应该会返回控制器中的中间件

票数 0
EN

Stack Overflow用户

发布于 2018-07-08 04:53:58

该配置具有当前的默认保护。如果您使用的是auth中间件,则身份验证将设置为当前默认值:

代码语言:javascript
复制
config('auth.defaults.guard'); 

Auth::getDefaultDriver(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51222739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档