Авторизация

Авторизация через форму

Чтобы авторизоваться, достаточно отправить форму ниже:

<form method="POST" action="{{ route('login') }}">
    @csrf

    <input type="email" name="email" value="{{ old('email') }}" required>
    @error('email'))
        {{ $message }}
    @enderror

    <input type="password" name="password" required>
    @error('password'))
        {{ $message }}
    @enderror

    <input type="submit" value="Войти">
</form>

После нескольких неудачных попыток авторизоваться, авторизация заблокируется на одну минуту.

Авторизация через код (API)

Авторизоваться через код (API) можно с помощью метода Auth::attempt().

use Illuminate\Support\Facades\Auth;
// …

Auth::attempt(['email' => $email, 'password' => $password]);

Если получится авторизоваться, метод Auth::attempt() вернёт «true», иначе вернёт «false».

Вместо поля «email» можно использовать любое другое поле.

Auth::attempt(['login' => $email,    'password' => $password]);
Auth::attempt(['username' => $email, 'password' => $password]);

Поле «password» является обязательным. Если его не указать, то Laravel вернёт ошибку «Undefined index: password».

Также при авторизации можно указать дополнительные поля.

Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1]);

Редирект после авторизации

Редирект после авторизации указывается в файле app/Http/Controllers/Auth/LoginController.php.

# app/Http/Controllers/Auth/LoginController.php

protected $redirectTo = '/home';

Выйти

По умолчанию, выйти из своей страницы можно по URL «/logout» через Post-запрос.

<!-- отправить форму при нажатии по ссылке (указана в onclick) -->
<a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit()">Log out</a>

<!-- форма для выхода из страницы -->
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none">
    @csrf
</form>

Также можно выйти через метод Auth::logout().

use Illuminate\Support\Facades\Auth;
// …

Auth::logout();