Laravel 身份验证令人困惑

Ary*_*iri 3 authentication model login laravel

我是 Laravel 的初学者。

我想使用:

Auth::login(users::find(1))
Run Code Online (Sandbox Code Playgroud)

结果:输入 错误:

传递给 Illuminate\Auth\SessionGuard::login() 的参数 1 必须是 Illuminate\Contracts\Auth\Authenticatable 的实例,App\users 的实例给定

更改了模型以扩展 Authenticatable 而不是 Model。此外,我将 Auth 语句更改为:

Auth::login(users::where('id', 1))
Run Code Online (Sandbox Code Playgroud)

结果:输入 错误:

传递给 Illuminate\Auth\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\Contracts\Auth\Authenticatable,给出 Illuminate\Database\Eloquent\Builder 的实例

我想知道你是否会帮助我,“感谢”

Pho*_*bus 5

你,应该在用户模型类中实现 Illuminate\Contracts\Auth\Authenticatable 以通过 Auth::login

验证用户实例

如果您需要将现有用户实例登录到您的应用程序中,您可以使用用户实例调用 login 方法。给定的对象必须是 Illuminate\Contracts\Auth\Authenticatable 合约的实现。当然,Laravel 附带的 App\User 模型已经实现了这个接口:

验证::登录($用户);

https://laravel.com/docs/5.1/authentication

或者你可以简单地这样做:

Auth::loginUsingId(1);
Run Code Online (Sandbox Code Playgroud)