Сравнение пароля из поля ввода с базой данных |Laravel - PullRequest
0 голосов
/ 23 мая 2018

Я хочу сравнить пароль из поля ввода с записью в базе данных.Если введенные пользователем данные верны, он будет перенаправлен.Если это не так, ничего не произойдет.

У меня есть этот код в моем контроллере:

   public function check(check $check){

   if (User::where('password', '=', Input::get('password'))->exists()) {

      return redirect()->route('site.create');

   }

   Site::return($request->all());
}

И что-то вроде этого стоит на мой взгляд:

<div class="form-group row">
    <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('please type in your password') }}</label>
<div class="col-md-6">
    <input id="password" type="password" class="form-control" name="password" required>

Спасибоза каждую помощь я ценю это.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Попробуйте использовать это:

if (Hash::check('yourpassword', Input::get('password'))) {
    return redirect()->route('site.create');
}

Вы также можете использовать:

password_verify() в PHP.Смотрите эту ссылку: http://php.net/manual/en/function.password-verify.php

0 голосов
/ 23 мая 2018

Вы не можете напрямую сравнивать пароли в Laravel.Пароли могут быть хэшированы только в одном направлении.

Hash::check('plain-text', $hashedPassword);

Для получения дополнительной информации https://laravel.com/docs/5.6/hashing

$user =  User::where('email', '=', Input::get('email'))->first();

if( Hash::check(Input::get('password'), $user->password)){
//passwrd is equal

}

Если вы просто хотите проверить пароль, вы можете использовать Hash

Если вы хотите войти в систему напрямую с паролем.

if (Auth::attempt(['password' => $password])) {
    // Password matches and logged in.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...