VuePressVuePress
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
  • 基础知识

    • 表单验证
    • 限流1
  • 请求

    • request
  • 认证

    • auth
      • Auth::shouldUse($guard)
  • 验证

    • fail
  • migrations

    • migration
  • eloquent

    • eloquent
    • updateOrCreate
  • seeder

    • seeder
    • seeder2
  • 套件

    • precognition
  • 进阶

    • Cache 缓存
  • 最佳实践

    • CRUD 最佳实践
    • 将用户定位到他的前缀域名
    • 服务类仓储类查询类
    • 接口和实现
    • laravel 中 trait 引导机制
    • 使用阿里云oss上传图片
  • plugins

    • IDE Helper Generator for Laravel

Auth::shouldUse($guard)

这行代码的意思是设置应该使用哪个认证守卫(authentication guard)。让我解释一下:

public function handle(Request $request, Closure $next): Response
{
    foreach ($this->guards as $guard) {
        if (Auth::guard($guard)->check()) {
            Auth::shouldUse($guard);
            return $next($request);
        }
    }
    // ... 后续代码
}

Auth::shouldUse($guard) 的具体含义是:

  1. 指定后续的认证操作应该使用哪个守卫。
  2. 它告诉 Laravel 的认证系统,对于当前请求,应该使用指定的 $guard 进行所有的认证操作。
  3. 这很重要,因为在一个应用中可能有多个不同的认证守卫(例如用户、管理员、API 等),shouldUse 确保使用正确的守卫。
  4. 调用此方法后,如果你在控制器或其他地方使用 Auth::user(),它会自动使用这里指定的守卫。

在这个中间件中,它首先检查每个守卫是否已经通过认证。一旦找到一个已认证的守卫,就设置它为当前请求应使用的守卫,然后允许请求继续处理。

这样可以确保在多守卫系统中,始终使用正确的认证上下文来处理请求。

Last Updated:
Contributors: BaronYan