English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Introducción
Este artículo introduce principalmente sobre Laravel 5.5Basado en el módulo integrado Auth, se implementan los contenidos de inicio de sesión de adelante y atrás, más información sobre el módulo Auth puede encontrarse en este artículo: https://es.oldtoolbag.com/article/121401.htm
No quiero perder tiempo en palabras, veamos una introducción detallada.
El método es el siguiente:
Pasos1:Generar Auth
Después de que se complete el proyecto, se generan los componentes integrados de Auth:
php artisan make:auth
Pasos2:Agregar guard
Abrir config\auth.php, para facilitar la transición entre usuarios delanteros y traseros, el proyecto comparte la tabla Users
'guards' => [ //... 'admin' => [ 'driver' => 'session', 'provider' => 'users', ], //... ],
Pasos3:实现基类
class AdminController extends BaseController { usar AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { $this->middleware('auth:admin'); } }
Pasos4:实现后台登录控制器
Crear appcontrollersAdminLoginController.php
<?php namespace App\Http\Controllers\Admin; usar App\Http\Controllers\Controller; usar Illuminate\Support\Facades\Auth; usar Illuminate\Foundation\Auth\AuthenticatesUsers; usar Illuminate\Http\Request; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Controlador de Inicio de Sesión |-------------------------------------------------------------------------- | | Este controlador maneja la autenticación de usuarios para la aplicación y | redirigiéndolos a su pantalla de inicio. El controlador utiliza un trait | para proporcionar convenientemente su funcionalidad a sus aplicaciones. | */ usar AuthenticatesUsers; /** * ¿Dónde redirigir a los usuarios después del inicio de sesión. * * @var string */ protected $redirectTo = '/admin'; /** * Crear una nueva instancia de controlador. * * @return void */ public function __construct() { $this->middleware('guest:admin');->except('logout'); } /** * Reescribe la página de inicio de sesión * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showLoginForm() { return view('backend.login'); } /** * Reescribe el método de salida * @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'); } /** * Reescribe la autenticación guard * @return mixed */ protected function guard() { return Auth::guard('admin'); } }
Pasos5:Realizar la redirección a diferentes rutas después del inicio de sesión
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); }
Pasos6:Realizar la redirección a diferentes páginas de inicio de sesión si no se ha pasado la autenticación
app\Exceptions\Handler.php
/** * Reescribe la implementación para que el usuario no autenticado se redirija a la página de inicio de sesión correspondiente * @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); }else{ return in_array('admin', $exception->guards()) ? return redirect()->guest('/admin/login') : redirect()->guest('login'); } }
Completar
Resumen
Esto es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierta valoración de referencia para su aprendizaje o trabajo. Si tienen alguna pregunta, pueden dejar comentarios para intercambiar. Gracias por su apoyo a la guía de alarido.
Declaración: El contenido de este artículo se ha obtenido de la red, y los derechos de autor pertenecen al propietario original. El contenido ha sido contribuido y subido por usuarios de Internet de manera autónoma. Este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.