Метод attempt
Метод attempt класса Auth предназначен для выполнения попытки входа пользователя в систему. Первым параметром передаётся массив с учетными данными (обычно email и пароль), вторым - булево значение для запоминания пользователя. Метод возвращает true при успешной аутентификации и false в противном случае.
Синтаксис
<?php
Auth::attempt($credentials, $remember);
?>
Пример
Давайте выполним попытку входа пользователя с указанными учетными данными:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
class AuthController extends Controller
{
public function login(Request $request)
{
$credentials = [
'email' => $request->input('email'),
'password' => $request->input('password')
];
if (Auth::attempt($credentials)) {
echo "Login successful";
return redirect()->intended('dashboard');
}
echo "Login failed";
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
]);
}
}
?>
Результат выполнения кода при успешном входе:
"Login successful"
Результат выполнения кода при неуспешном входе:
"Login failed"
Пример
Давайте выполним попытку входа с запоминанием пользователя:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
class AuthController extends Controller
{
public function login(Request $request)
{
$credentials = [
'email' => $request->input('email'),
'password' => $request->input('password')
];
$remember = $request->has('remember') ? true : false;
if (Auth::attempt($credentials, $remember)) {
echo "Login successful with remember token";
return redirect()->intended('dashboard');
}
echo "Login failed";
return back()->withErrors([
'email' => 'Invalid credentials',
]);
}
}
?>
Результат выполнения кода при успешном входе с запоминанием:
"Login successful with remember token"
Пример
Давайте выполним попытку входа с использованием дополнительных условий:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
class AuthController extends Controller
{
public function login(Request $request)
{
$credentials = [
'email' => $request->input('email'),
'password' => $request->input('password'),
'active' => true
];
if (Auth::attempt($credentials)) {
echo "User is active and login successful";
return redirect()->route('home');
}
echo "Login failed or user inactive";
return back()->withErrors([
'email' => 'Invalid credentials or account inactive',
]);
}
}
?>
Результат выполнения кода при успешном входе активного пользователя:
"User is active and login successful"
Результат выполнения кода при неуспешном входе:
"Login failed or user inactive"