Laravel认证令人困惑

时间:2016-02-24 14:07:36

标签: laravel authentication login model

我是Laravel的初学者。

我想用:

Auth::login(users::find(1))

结果: 输入错误:

  

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

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

Auth::login(users::where('id', 1))

结果: 输入错误:

  

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

我想知道你是否愿意帮助我,以及#39;欣赏'

1 个答案:

答案 0 :(得分:2)

您应该在用户Model类中实现Illuminate \ Contracts \ Auth \ Authenticatable以通过Auth :: login

  

验证用户实例

     

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

     

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

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

或者你可以这样做:

Auth::loginUsingId(1);