【问题标题】:which guard does laravel uses for authentication for default?laravel 默认使用哪个守卫进行身份验证?
【发布时间】:2020-01-31 17:01:11
【问题描述】:

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

 'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

我的身份验证工作正常。现在当我放这条路线时。

 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 中间件组:

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',
        ],
    ];


【问题讨论】:

  • 这个路由定义在哪个文件中?
  • 该路由在api.php文件中定义
  • api.php 将使用 api 中间件:laravel.com/docs/5.8/routing#basic-routing
  • 但我要问的问题是,当我通过默认保护对我的用户进行身份验证时,为什么 auth:api 会给我经过身份验证的用户

标签: php laravel laravel-5


【解决方案1】:

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

public function __construct()
{
    $this->middleware('auth:api');
}

或者您可以像之前那样在中间件中指定。 有关信息,您可以参考文档 https://laravel.com/docs/5.7/authentication

【讨论】:

  • 我问的是我没有修改任何默认的身份验证设置。所以它必须通过web 保护设置我的身份验证信息,对吗?由于web 中提到的默认守卫。那么为什么它允许我使用api 守卫并阻止我使用web 守卫。?
猜你喜欢
  • 2020-07-23
  • 2021-05-01
  • 2017-08-06
  • 2018-05-12
  • 2018-11-21
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
相关资源
最近更新 更多