2017-12-07 6 views
0

私はCRMで自分のアカウントを作成しました。Hash :: checkでDBにハッシュされたパスワードとプレーンパスワードが等しくない

ほとんどの興味深いのは、パスワードであり、私はそれがそのように扱わ作成しました:

$password = $faker->password(); 
$businessAccount->password = bcrypt($password); 

その後、私は、このパスワードを使用してメールを送信します。

今、いくつかの番号とパスワードを使用してログインしたいときに、自分のウェブサイトにログインページを作成しました。

public function login(BusinessLoginRequest $request) 
    { 
     $orgNumber = $request->input('orgNumber'); 
     $password = $request->input('password'); 
     var_dump($pass = BusinessAccounts::find('123456789')->password); 
     var_dump(Hash::check($password, $pass)); 
     if(Auth::guard('business')->attempt(['orgNumber' => $orgNumber, 'password' => $password ])) { 
       return 'Hello'; 
     } 
     return 'no'; 

    } 

は、私は、私は私が理解してどのように

パスワードがbcryptの通過ハッシュされた「ログイン」をクリックしたときに起こるかを見るためにここにそれを挿入したvar_dumpsのために申し訳ありませんが、認証::試み平文パスワードをハッシュでチェックしてください。

さて、もっと深く考えましょう。最初var_dump私はDBに格納されていたパスワードが同じであると言っています。

セカンドのvar_dumpは、私が思うに、私の「ブール値(偽)」と言うと、最後に私がいない、認証が失敗したと言います。

私のフォームにハッシュされたパスワードを入力すると、すべてが良好で「こんにちは」と表示されますが、間違っています。

そして、もちろん、私はガードとプロバイダ作成しました:

'guards' => [ 
     'web' => [ 
      'driver' => 'session', 
      'provider' => 'users', 
     ], 
     'api' => [ 
      'driver' => 'token', 
      'provider' => 'users', 
     ], 
     'business' => [ 
      'driver' => 'session', 
      'provider' => 'business' 
     ] 
    ], 

    'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => App\Models\Eloquent\Account::class, 
     ], 
     'business' => [ 
      'driver' => 'eloquent', 
      'model' => App\Models\Eloquent\BusinessAccounts::class 
     ] 
    ], 

を、私のモデルを変更した:

class BusinessAccounts extends Model implements Authenticatable 
{ 
    use \Illuminate\Auth\Authenticatable; 

    protected $table = 'business_accounts'; 

    protected $fillable = 
     [ 
      'orgNumber', 'password' 
     ]; 

    public $timestamps = false; 

    protected $primaryKey = 'orgNumber'; 

} 

質問です:私が間違って何をしましたか? unhashedパスワードを確認するには?私は私のdbからハッシュされたパスワードを入れたくありません。そのようにハッシュする

+0

laravelのバージョンは、それはあなたが使用しているのですか? – ochhii

+0

最初のvar_dump()では、$ pass = BusinessAccounts :: find( '123456789') - > password'(変数代入)を実際に意味しましたか、実際には$ pass、BusinessAccounts :: find( '123456789') - > password'(両方のハッシュを表示)? –

+0

$ businessAccountインスタンスを間違いなく更新していますか?すなわち、$ businessAccount-> password = bcrypt($ password); $ businessAccount-> save(); – ochhii

答えて

1

試してみてください。そして、

use Illuminate\Support\Facades\Hash; 

'password' => Hash::make($request->newPassword) 
関連する問題