gpt4 book ai didi

php - Laravel 5.2 Auth facade 和 Auth::guard($guard)

转载 作者:可可西里 更新时间:2023-10-31 23:55:38 27 4
gpt4 key购买 nike

我是 Laravel 的新手。我正在浏览默认的身份验证中间件,我看到它正在使用:

Auth::guard($guard)->guest()

检查用户是否是访客。

文档位于 https://laravel.com/docs/5.2/authentication#retrieving-the-authenticated-user告诉我们可以使用:

Auth::check()

确定用户是否通过身份验证。 (我想这与 guest() 相反?

我尝试更改要使用的默认代码

Auth::guest()

我得到了完全相同的结果。

我的问题是,在这种情况下,有没有 guard($guard)-> 有什么区别?

一个相关的问题。 guest() 是否与 check() 完全相反,或者在某些情况下它们可能会返回相同的结果?

谢谢!

最佳答案

authenticate 中间件允许您指定要使用的 auth guard 类型。 Laravel 5.2 自带两个开箱即用的工具,'web''api'

如果未指定,Auth facade 默认使用 'web' 守卫。因此,例如:Auth::user() 默认执行此操作:Auth::guard('web')->user()

开箱即用的另一个身份验证驱动程序称为 'api'。例如,您可以这样调用您的中间件:$this->middleware('auth:api');

这将检查用户是否通过 api_token 而不是 session 进行了身份验证。然后你可以通过 Auth::guard('api')->user() 而不是 Auth::user() 获取用户的实例,这是相同的作为 Auth::guard('web')->user()

如果您的应用程序具有仅允许登录用户使用的 API 端点,您将使用它。然后用户可以发出像 yourapp.com/api-method?api_token=blahblah 这样的请求。然后您可以使用“api”auth guard 来验证并获取已登录的用户。

我发现本教程对于设置它非常有用:http://learninglaravel.net/multiple-authentication-guard-drivers-including-api-in-laravel-52

然后回答你的第二个问题。是的,guest() 与 check() 正好相反。查看 laravel\framework\src\Illuminate\Auth\GuardHelpers.php

关于php - Laravel 5.2 Auth facade 和 Auth::guard($guard),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171269/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com