首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >默认情况下,laravel使用哪个卫士进行身份验证?

默认情况下,laravel使用哪个卫士进行身份验证?
EN

Stack Overflow用户
提问于 2020-02-01 01:01:11
回答 1查看 80关注 0票数 0

我已经使用默认的laravel配置进行了简单的身份验证。我的默认防护设置为web防护。

代码语言:javascript
运行
复制
 'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

我的身份验证工作得很好。现在当我把这条路线。

代码语言:javascript
运行
复制
 Route::group(['middleware' => ['auth']], function () {

    // Users
    Route::get('users/me', 'UserController@me')->name('users.me'); 

   //...below routes.

此路由返回异常unauthenticated。但是,当我在中间件中以auth:api的身份传递卫兵时,它就可以工作了。所以我只想知道我的用户是通过哪个卫士进行身份验证的。既然提到了默认的是web,而我没有在laravel上添加guard()方法来改变防护,为什么它没有采用默认的web方法呢?是否因为api路由中提到了它?如果是这样的话,当我没有通过该保护对我的用户进行身份验证时,它怎么能与auth:api一起工作呢?

这是我的web和api中间件组:

代码语言:javascript
运行
复制
protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
            'slowresponse',
        ],
    ];
EN

回答 1

Stack Overflow用户

发布于 2020-02-01 22:35:02

在将身份验证中间件附加到路由时,还可以指定应该使用哪个保护来对用户进行身份验证。为此,您可以在控制器的构造函数中指定

代码语言:javascript
运行
复制
public function __construct()
{
    $this->middleware('auth:api');
}

或者,您可以在中间件中指定,就像您所做的那样。有关信息,请参阅文档https://laravel.com/docs/5.7/authentication

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

https://stackoverflow.com/questions/60008251

复制
相关文章

相似问题

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