2017-11-01 29 views
0

私はログインしようとしていますが、必ず失敗します。私はlaravel LoginControllerでなぜlaravelのパスワードが一致しないのですか?

'password' => bcrypt($data['password']), 

私のパスワードを保存する方法

これ。この

$credentials = [ 
      'username'  => Input::get('username'), 
      'password'  => Input::get('password') 
     ]; 

と私はテスト

public function customchecker() 
    { 
     $credentials = [ 
      'username'  => Input::get('username'), 
      'password'  => bcrypt(Input::get('password')) 
     ]; 

     if (Auth()->attempt($credentials)) { 
       return Redirect::to('home')->with('alert-success', 'You are now logged in.'); 

      }else{ 

      $errors = ['username' => ['Email and/or password invalid.']]; 

      return Redirect::back()->withErrors($errors)->withInput(Input::except('password')); 
      } 

    } 

まだ私はこの問題を解決するにはどうすればよい、動作していませんか?パスワードbcryptのないはずの資格情報で

+0

'' check'''メソッドは、特定のプレーンテキスト文字列が指定されたハッシュに対応することを検証できます。ただし、Laravelに含まれている '' LoginController'''を使用している場合は、このコントローラを自動的に呼び出すため、これを直接使用する必要はありません。 Laravel Docs:https://laravel.com/docs/master/hashing – Treast

答えて

3

は、あなただけのプレーンテキストのパスワードを渡す必要があり、その代わりに:

$credentials = [ 
     'username'  => Input::get('username'), 
     'password'  => bcrypt(Input::get('password')) 
    ]; 

使用:

$credentials = [ 
     'username'  => Input::get('username'), 
     'password'  => Input::get('password') 
    ]; 

、それが動作します。ボンネットの下に

このような何かが、後に行われます:あなたは、プレーンなパスワードを参照してください

public function validateCredentials(UserContract $user, array $credentials) 
{ 
    $plain = $credentials['password']; 

    return $this->hasher->check($plain, $user->getAuthPassword()); 
} 

ように、パスワードが有効である場合を比較するために後で使用されています。

+0

'validateCredentials()'はどこにありますか? – YVS1102

+0

申し訳ありません、私はlaravelで新しいです – YVS1102

関連する問題