データベースに保存されているハッシュ化されたパスワードを使用してフォーム入力をチェックしようとしています。しかし、何らかの理由で、チェックはパスワードではなくユーザー名で実行されます。さて、私の質問は、これらのコマンドを正しい方法で使用していないのでしょうか、それとも単に何かを忘れただけなのでしょうか? これが私のコードです:
route.phpで
Route::get('/{user}/confirm', 'PagesController@confirm');
PagesController.php で
public function check(User $user)
{
return view('users.check', compact('user'));
}
public function confirm(User $user, Request $request)
{
echo "Input = " . $request->input('check');
echo "<br>";
echo "Password in DB = " . $user->password;
echo "<br>";
echo "Username = " . $user->username;
if (Hash::check($request->input('check'), $user->password))
{
echo "<br>Correct Password.";
} else {
echo "<br>Incorrect Password.";
}
そして最後に、check.blade.php で
@extends("master")
@section("content")
<h2>Check User:</h2>
<h3 class="text-success">{{ $user->username }}</h3>
{!! Form::model($user, ['url' => '/' . $user->slug . '/confirm', 'method' => 'GET']) !!}
<div class="form-group">
<div class="row">
<div class="col-xs-4">
{!! Form::label('check', 'Password') !!}
{!! Form::text('check', null, ['class' => 'form-control']) !!}
</div>
</div>
</div>
<div class="form-group">
{!! Form::submit('Check Password', ['class' => 'btn btn-primary']) !!}
<a href="/" class="btn btn-primary">Cancel</a>
</div>
{!! Form::close() !!}
@stop
現在、私のデータベースには、パスワードが 1234 の test というユーザーがいます。パスワードの確認フィールドに「1234」を入力すると、「パスワードが正しくありません」というメッセージが表示されます。しかし、「test」と入力すると、「正しいパスワード」が返されます。
私はプログラミングにかなり慣れていません..言及する価値があるかもしれません。