我在laravel中注册用户时遇到了问题,$user
假设是包含所有数组元素的数组,而自动登录以下代码结果为 false 。数据库中的密码保存为hash::make('password')
。
$user_id = $this->user_model->addUser($user);
$post = array('password' => $pass_for_auth, 'email' => $email);
var_dump(Auth::attempt($post,true));die;
任何人都可以告诉我什么是正确的问题
答案 0 :(得分:12)
您可以尝试通过$user_id
登录用户。所以你的代码将是:
$user_id = $this->user_model->addUser($user);
$post = array('password' => $pass_for_auth, 'email' => $email);
Auth::loginUsingId($user_id);
您创建了用户,因此返回user_id,user_id可以登录用户。
希望这有效!
有关详情,请访问:https://laravel.com/docs/5.2/authentication#other-authentication-methods
答案 1 :(得分:8)
这是进行用户注册的标准方法 - 您创建一个新的用户模型实例并将其传递给Auth :: login():
// do not forget validation!
$this->validate($request, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
$data = $request->all();
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
Auth::login($user);