laravel Auth:user()
或Auth:id()
如何运作
是否驻留在会话或数据库中。
我搜索但没有得到好文章。
请帮助理解。我知道我会得到许多下来的选票;)
答案 0 :(得分:3)
这是我试图找出Auth::user()
电话实际发生的事情:
Auth::user()
Illuminate\Support\Facades\Auth
extends Illuminate\Support\Facades\Facade
Facade::__callStatic('user')
static::getFacadeRoot()
resolveFacadeInstance(static::getFacadeAccessor == 'auth' (from Auth class))
return static::$app[$name];
static::$app is instance of Illuminate\Foundation\Application
extends Illuminate\Container\Container
实现ArrayAccess
(这就是为什么$obj[]
语法有效)
Container::offsetGet(auth)
Application::make(auth)
Container::getAlias(auth) return 'auth'
Container::make(auth)
Container::resolve(auth)
yadda,yadda,yadda
见Application::registerCoreContainerAliases
'auth' = Illuminate\Auth\AuthManager
AuthManager::user() = AuthManager::__call = $this->guard()->user()
AuthManager::guard(web)
AuthManager::resolve(web) (see config/auth.php)
AuthManager::createSessionDriver() returns new Illuminate\Auth\SessionGuard
SessionGuard::user() // <---- this is what actually get's called, based on default config
答案 1 :(得分:2)
你读过这个吗?
是一个很好的指南答案 2 :(得分:0)
laravel使用session进行身份验证。如果你是laravel的开始,那么必须阅读以下链接:
https://laravel.com/docs/5.4/authentication
我认为它可以帮助你
答案 3 :(得分:0)
您可以在Auth \ SessionGuard类中找到此方法:
可认证|空用户()
获取当前经过身份验证的用户。
返回值Authenticate | null
签出:https://laravel.com/api/5.7/Illuminate/Auth/SessionGuard.html#method_user