Laravel v5.2.*(v.2.29)Auth::guard(';api';)->;尝试($use


Laravel v5.2.* (v5.2.29) Auth::guard('api')->attempt($user) fatal error

有人遇到这个问题吗

dd($this->user->check()); return false

但是

Auth::guard('user')->attempt(App'User::find(1)) 

返回错误

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

请帮助解决此问题。

我解决了这个问题

config/auth.php配置中:

'user' => [
    'driver' => 'token',
    'provider' => 'userProvider',
],

我们需要更改为:

'user' => [
    'driver' => 'session',
    'provider' => 'userProvider',
],

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

以及关于众所周知的方案的进一步工作

Auth::login() = Auth::guard('user')->login()
Auth::attempt() = Auth::guard('user')->attempt()
Auth::user() = Auth::guard('user')->user()
...

向函数attempt传递一个creditianals数组,而不是用户对象。

例如:

Auth::guard('user')->attempt([
    'email' => 'some@email.com',
    'password' => '1234'
]);

如果你正在使用Laravel并需要对用户进行身份验证,你可以调用类似的:

auth()->attempt([
    'email' => 'some@email.com',
    'password' => '1234'
]);