如何在laravel中注册后自动登录

Har*_*thi 10 php laravel

我在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;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我什么是正确的问题

Rob*_*sen 13

您可以尝试通过他登录用户$user_id.所以你的代码将是:

$user_id = $this->user_model->addUser($user);
$post = array('password' => $pass_for_auth, 'email' => $email);
Auth::loginUsingId($user_id);
Run Code Online (Sandbox Code Playgroud)

您创建了用户,因此它返回user_id,使用user_id可以登录用户.

希望这个有效!

更多信息请访问:https://laravel.com/docs/5.2/authentication#other-authentication-methods


Tad*_*kas 9

这将是进行用户注册的标准方法 - 您创建一个新的用户模型实例并将其传递给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);
Run Code Online (Sandbox Code Playgroud)