English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Введение
Эта статья主要内容是关于Laravel 5.5, который реализует вход в систему на передней и задней панелях с использованием встроенного модуля Auth, более подробную информацию о модуле Auth можно найти в этой статье: https://ru.oldtoolbag.com/article/121401.htm
Теперь не будем больше болтать, давайте посмотрим на подробное описание.
Методы такие:
Шаг 1: Создать Auth
После завершения проекта создайте встроенный компонент Auth:
php artisan make:auth
Шаг 2: Добавить guard
Откройте файл config\auth.php, чтобы упростить переключение пользователей между前台 и后台, проект использует таблицу Users
'guards' => [ //... 'admin' => [] 'driver' => 'session', 'provider' => 'users', ], //... ],
Шаг 3: Реализуйте базовый класс
class AdminController extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { $this->middleware('auth:admin'); } }
Шаг 4: Реализуйте контроллер входа в систему
Создайте файл appcontrollersAdminLoginController.php
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Контроллер входа |-------------------------------------------------------------------------- | | Этот контроллер обрабатывает аутентификацию пользователей для приложения и | Перенаправлять их на экран дома. Контроллер использует трейт | для удобства предоставления его функциональности вашим приложениям. | */ use AuthenticatesUsers; /** * Где направлять пользователей после входа в систему. * * @var string */ protected $redirectTo = '/admin'; /** * Создайте новый экземпляр контроллера. * * @return void */ public function __construct() { $this->middleware('guest:admin')->except('logout'); } /** * Переопределение страницы входа * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showLoginForm() { return view('backend.login'); } /** * Переопределение метода выхода * @param Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function logout(Request $request) { $this->guard()->logout(); $request->session()->flush(); $request->session()->regenerate(); return redirect('/admin/login'); } /** * Переопределение метода guard аутентификации * @return mixed */ protected function guard() { return Auth::guard('admin'); } }
Шаг 5: Реализация переброса на разные страницы после входа
app\Middleware\RedirectIfAuthenticated.php
public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { $path = $guard ? '/admin' : '/home'; return redirect($path); } return $next($request); }
Шаг 6: Реализация переброса неавторизованного пользователя на разные страницы входа
app\Exceptions\Handler.php
/** * Реализация переброса неавторизованного пользователя на соответствующую страницу входа * @param \Illuminate\Http\Request $request * @param AuthenticationException $exception * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ protected function unauthenticated($request, AuthenticationException $exception) { if($request->expectsJson()){ return response()->json(['message' => $exception->getMessage()], 401); } return in_array('admin', $exception->guards()) ? return redirect()->guest('/admin/login') : redirect()->guest('login'); } }
Готово
Резюме
Вот и все, что есть в этой статье, надеюсь, что содержимое статьи будет иметь определенную ценность для вашего обучения или работы, если у вас есть вопросы, пожалуйста, оставляйте комментарии для обсуждения, спасибо за поддержку учебника呐喊.
Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему владельцу, контент предоставлен пользователями Интернета, сайт не имеет права собственности, не underwent ручную редакцию и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите подозрительное нарушение авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для отчета и предоставьте соответствующие доказательства. Если подтвердится, сайт немедленно удалят подозрительное нарушение авторских прав.