English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Подробное описание реализации входа в систему на前台 и后台 с использованием встроенного модуляAuth Laravel 5.5

Введение

Эта статья主要内容是关于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 (во время отправки письма, пожалуйста, замените # на @) для отчета и предоставьте соответствующие доказательства. Если подтвердится, сайт немедленно удалят подозрительное нарушение авторских прав.

Рекомендуем к просмотру