Метод check
Метод check класса Hash применяется для верификации пароля.
Он принимает два параметра: первый - открытый текст пароля,
второй - хешированное значение, хранящееся в базе данных.
Метод возвращает true, если пароль совпадает с хешем,
и false в противном случае.
Синтаксис
<?php
Hash::check($plainPassword, $hashedPassword);
?>
Пример
Давайте проверим пароль при входе пользователя в систему:
<?php
namespace AppHttpControllers;
use AppModelsUser;
use IlluminateSupportFacadesHash;
use IlluminateHttpRequest;
class AuthController extends Controller
{
public function login(Request $request)
{
$user = User::where('email', $request->email)->first();
if (!$user) {
echo "User not found";
return;
}
if (Hash::check($request->password, $user->password)) {
echo "Login successful";
} else {
echo "Invalid password";
}
}
}
?>
Результат выполнения кода при правильном пароле:
"Login successful"
Пример
Проверим пароль в контроллере регистрации:
<?php
namespace AppHttpControllers;
use AppModelsUser;
use IlluminateSupportFacadesHash;
use IlluminateHttpRequest;
class RegisterController extends Controller
{
public function register(Request $request)
{
$hashedPassword = Hash::make($request->password);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => $hashedPassword,
]);
if (Hash::check($request->password, $user->password)) {
echo "User created successfully";
} else {
echo "Error creating user";
}
}
}
?>
Результат выполнения кода:
"User created successfully"
Пример
Используем метод check для проверки пароля в middleware:
<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateHttpRequest;
use IlluminateSupportFacadesHash;
use AppModelsUser;
class CheckPassword
{
public function handle(Request $request, Closure $next)
{
$user = User::find($request->user_id);
if (!$user) {
echo "User not found";
return;
}
if (Hash::check($request->password, $user->password)) {
return $next($request);
}
echo "Access denied";
}
}
?>
Результат выполнения кода при успешной проверке:
"Access granted"
Смотрите также
-
метод
make,
который создает хеш пароля -
метод
needsRehash,
который проверяет необходимость перехеширования -
метод
isHashed,
который проверяет, является ли строка хешем -
функцию
bcrypt,
которая создает хеш пароля с помощью алгоритма Bcrypt