2015-11-26 75 views
-1

我试过搜索Google并尝试了几种方法。他们都没有工作:auth::attempt仍然返回false。我的注册码在下面;在我AuthController我:Laravel Auth ::尝试总是返回false

protected function create(array $data) 
{ 
    $datetime = new \DateTime(); 
    $datetime->format('Y-m-d H:i:s'); 
    $datetime->getTimestamp(); 

    return User::create([ 
     'country_id' => 1, // default to malaysia 
     'user_name' => $data['user_name'], 
     'facebook_id' => null, 
     'steam_link' => null, 
     'password' => Hash::make($data['password']), 
     'extra_information' => null, 
     'remember_token' => null, 
     'email' => $data['email'], 
     'status_id' => 1, // active 
     'is_verified' => false, // false 
     'user_type_id' => 2, // normal user 
     'account_status_id' => 1, // pending 
     'confirmation_code' => str_random(30), 
     'created_at' => $datetime 
    ]); 
} 

public function postRegister(Request $request) 
{ 
    $validator = $this->validator($request->all()); 

    if ($validator->fails()) { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 

    $user = $this->create($request->all()); 

    Mail::send('emails.registration_verification', ['user' => $user], function ($m) use ($user) 
    { 
     $m->from('[email protected]', 'www.myapps.com'); 
     $m->to($user->email, $user->user_name)->subject('Verify your myappsaccount.'); 
    }); 

    return view('auth.registration_success')->with('user_name',$user->user_name)->with('email', $user->email); 
} 

public function emailVerification($confirmation_code) 
{ 
    if (!$confirmation_code) 
    { 
     return Redirect::route('/errors/500'); 
    } 

    $user = User::whereConfirmationCode($confirmation_code)->first(); 

    if (!$user) 
    { 
     return Redirect::route('/errors/500'); 
    } 

    $user->account_status_id = 2; // active 
    $user->confirmation_code = null; 
    $user->save(); 

    return view('auth.verification_success')->with('user',$user); 
} 

public function postLogin(Request $request) 
{ 
    $userdata = array(
     'email' => $request->email, 
     'Password' => $request->password 
    ); 

    if (Auth::attempt($userdata,true)) { 
     echo 'test'; 
    } 
    else { 
     var_dump($userdata); 
    } 
} 

我因此散列我的密码,我也改了密码栏从60到255,但仍登录失败。

预期的工作流程是用户注册,系统发送一封电子邮件给他们进行验证。用户点击电子邮件中的链接将触发emailVerification方法。验证完成后,用户应能够登录。

我错过了什么?

+1

我不确定,但您是否尝试将“密码”键更改为“密码”(全部小写)? –

+0

它肯定应该是小写字母,密码栏只能有60个字符长。 –

+0

嗨...密码全部是小写... –

回答

1

我敢肯定你的错误是在这里:

$userdata = array(
     'email' => $request->email, 
     'Password' => $request->password 
); 

在数据库中的password场小写,而你正在检查一个以大写P开始。将'Password' => $request->password更改为'password' => $request->password,它应该可以工作。

+0

嗨,我已将“密码”更改为“密码”,但仍然失败。 –

0

我的不好,在用户模型中包含了下面的代码帮我解决了这个问题。

public function getAuthPassword() 
    { 
     return $this->password; 
    } 
相关问题