Laravel проверка по запросу

Я пытаюсь проверить ввод формы с хешированным паролем, хранящимся в моей базе данных. Но по какой-то причине проверка выполняется по имени пользователя, а не по паролю. Теперь мой вопрос: правильно ли я использую эти команды или я просто что-то забыл? Вот мой код:

в 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

Теперь в моей базе данных есть пользователь с именем test с паролем 1234. Если я добавлю «1234» в поле проверки пароля, я получу «Неверный пароль». Но, если я поставлю «тест», он вернет «правильный пароль».

Я довольно новичок в программировании … стоит упомянуть.

1

Решение

Кажется, что вы создали пользователя с паролем, который совпадает с именем пользователя.

Вы должны посмотреть на метод, где вы создаете своего пользователя, и он должен быть:

$user = new User();
$user->name = $request->input('name');
$user->password = Hash::make($request->input('password'));
$user->save();

Я думаю, что теперь ваш процесс создания пользователя выглядит так:

$user = new User();
$user->name = $request->input('name');
$user->password = Hash::make($request->input('name'));
$user->save();

так что вы создаете не для поля пароля, а для имени, и именно поэтому Hash::check Значение true, когда вы передаете имя пользователя, и false, когда вы передаете пароль.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]