Evr*_*sen 5 php authentication laravel
我是Laravel的新手.我正在浏览默认的身份验证中间件,我发现它正在使用:
Auth::guard($guard)->guest()
Run Code Online (Sandbox Code Playgroud)
检查用户是否是来宾.
https://laravel.com/docs/5.2/authentication#retrieving-the-authenticated-user上的文档告诉我们可以使用:
Auth::check()
Run Code Online (Sandbox Code Playgroud)
确定用户是否经过身份验证.(我想这是客人()的对面吗?
我尝试更改要使用的默认代码
Auth::guest()
Run Code Online (Sandbox Code Playgroud)
而且我得到了完全相同的结果.
我的问题是,在这种情况下,保护($ guard) - >之间有什么区别?
一个相关的问题.guest()是否与check()完全相反,或者是否存在可能返回相同结果的情况?
谢谢!
Wes*_*ena 16
通过身份验证的中间件,您可以指定要使用的auth guard类型.Laravel 5.2带有两个开箱即用的'web'和'api'.
如果没有指定,Auth Facade默认使用'web'保护.例如: Auth::user()默认情况下这样做:Auth::guard('web')->user()
开箱即用的另一个auth驱动程序称为"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
| 归档时间: |
|
| 查看次数: |
20146 次 |
| 最近记录: |