내 데이터베이스에 저장된 해시 암호로 양식 입력을 검사하려고합니다. 하지만 어떤 이유로 암호가 아닌 사용자 이름으로 확인이 실행됩니다. 자, 제 질문은 올바른 방법으로이 명령을 사용하지 않습니까 아니면 그냥 잊어 버린 것입니까? 에,요청시 Laravel 해시 검사
@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
이제 check.blade.php에,
route.php
Route::get('/{user}/confirm', '[email protected]');
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.";
}
에서 그리고 마지막에 : 여기 내 코드입니다 내 데이터베이스, 나는 1234 암호로 테스트라는 사용자가 있습니다. 내가 암호 필드에 "1234"를 넣으면, 나는 "Passw ord ". 하지만 "test"를 입력하면 "올바른 비밀번호"가 반환됩니다.
저는 프로그래밍에 익숙하지 않습니다. 언급할만한 가치가 있습니다.
저는 Laravel 5를 사용하고 있으며 사용자 생성시 암호를 저장할 때 hash :: make를 사용합니다. 암호가 해시되었습니다. –