Laravel v5.2.*(v5.2.29)Auth :: guard('api') - >尝试($ user)致命错误

Van*_*yan 6 php laravel

有没有人遇到过这个问题

dd($this->user->check()); return false
Run Code Online (Sandbox Code Playgroud)

Auth::guard('user')->attempt(App\User::find(1)) 
Run Code Online (Sandbox Code Playgroud)

返回错误

调用未定义的方法Illuminate\Auth\TokenGuard :: attempt()

请帮助解决此问题.

Van*_*yan 7

我解决了这个问题

config/auth.php配置中:

'user' => [
    'driver' => 'token',
    'provider' => 'userProvider',
],
Run Code Online (Sandbox Code Playgroud)

我们需要改为:

'user' => [
    'driver' => 'session',
    'provider' => 'userProvider',
],
Run Code Online (Sandbox Code Playgroud)

因为Auth::guard数据存储在会话中

并进一步研究着名的计划

Auth::login() = Auth::guard('user')->login()
Auth::attempt() = Auth::guard('user')->attempt()
Auth::user() = Auth::guard('user')->user()
...
Run Code Online (Sandbox Code Playgroud)