我在用Laravel写一个小东西,我判断用户名及密码无误后直接实例一个用户对象并且为这个对象赋值一些属性。
但是这个位置必须要使用 save 方法后在数据库中新增一条数据后才可以使用 Auth::login 方法认证,否则一直认证不了,请问为什么?
我在用Laravel写一个小东西,我判断用户名及密码无误后直接实例一个用户对象并且为这个对象赋值一些属性。
但是这个位置必须要使用 save 方法后在数据库中新增一条数据后才可以使用 Auth::login 方法认证,否则一直认证不了,请问为什么?
当你的
User
模型在数据库中不存在时,使用Auth::login($user)
认证的用户,只能在本次请求中生效。下次请求时,你使用
Auth::user()
等方法获取已认证的用户,将返回空
。因为
laravle
在使用Auth::user()
等方法获取已认证用户时,用两种可能:session
驱动中获取已认证的用户ID
cookie
中,获取用户ID
无论是那种方式,都要通过数据库查询该用户
ID
,把查到的用户信息设置到当前会话中。所以你不保存用户信息到数据库时,使用Auth::login($user)
认证的用户,只能在本次请求中生效。