在Laravel的一条路线上使用多个守卫

时间:2019-02-08 14:38:26

标签: laravel

我如何在laravel的一条路线上使用多个守卫? 我有两个警卫:admin-api,user-api,我想检查是否可以访问用户令牌是否有效,如果用户表中的令牌无效,请检查admins表中的令牌。

我使用以下代码,但仅应用了第二个中间件。

Route::middleware('auth:api')
        ->middleware('auth:api-admin')
        ->post('/user' , 'UserController@user');

2 个答案:

答案 0 :(得分:1)

您可以在路由中添加一系列中间件

Route::middleware(['auth:api', 'auth:api-admin'])->post('/user', 'UserController@user');

答案 1 :(得分:0)

问这个问题已经有一段时间了,但是另一种在不添加自定义中间件的情况下检查一条路由中的多个防护的方法是将多个防护传​​递给Route::middleware(['auth:api,api-admin'])->post('/user', 'UserController@user'); 中间件:

public sealed class LogHandlerTests {

    private class Subject: SomeClass {
        public Subject(): base (null) { //<-- SHOULD THROW
            //...
        }
    }

    [Test]
    public void Constructor_Test_Should_Throw_ArgumentNulLException_When_SomeDependency_Is_Null() {
        Assert.Throws<ArgumentNullException>(() => new Subject());
    }
}