Метод validate
Метод validate класса Auth предназначен для проверки
учётных данных пользователя без фактической аутентификации.
Он принимает массив с данными для проверки и возвращает
true, если учётные данные верны, и false
в противном случае. В отличие от метода attempt,
этот метод не создаёт сессию для пользователя.
Синтаксис
<?php
Auth::validate($credentials);
?>
Параметр $credentials представляет собой ассоциативный
массив с ключами, соответствующими полям таблицы пользователей
(обычно 'email' и 'password'). Метод проверяет
соответствие пароля хешу, хранящемуся в базе данных.
Пример
Давайте проверим учётные данные пользователя по электронной почте и паролю:
<?php
use Illuminate\Support\Facades\Auth;
$credentials = [
'email' => 'user@example.com',
'password' => 'password123',
];
if (Auth::validate($credentials)) {
echo 'Credentials are valid';
} else {
echo 'Invalid credentials';
}
?>
Результат выполнения кода:
"Credentials are valid"
Пример
Давайте проверим учётные данные с дополнительным полем активности пользователя:
<?php
use Illuminate\Support\Facades\Auth;
$credentials = [
'email' => 'user@example.com',
'password' => 'password123',
'active' => 1,
];
if (Auth::validate($credentials)) {
echo 'Valid and active user';
} else {
echo 'Invalid credentials or inactive user';
}
?>
Результат выполнения кода:
"Valid and active user"
Пример
Давайте используем метод validate в контроллере
для проверки данных перед выполнением других операций:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function check(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::validate($credentials)) {
return response()->json([
'message' => 'Credentials are correct',
]);
}
return response()->json([
'message' => 'Invalid credentials',
], 401);
}
}
?>