English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Introduzione
Questo articolo introduce il contenuto relativo all'esecuzione di login frontend e backend basato sul modulo Auth integrato in Laravel 5.5, per ulteriori informazioni sul modulo Auth, si può fare riferimento a questo articolo: https://it.oldtoolbag.com/article/121401.htm
Non c'è molto da dire, vediamo insieme la descrizione dettagliata.
Il metodo è il seguente:
Passaggio 1: genera Auth
Dopo la creazione del progetto, genera il componente Auth integrato:
php artisan make:auth
Passaggio 2: aggiungi guard
Apri il file config\auth.php, per facilitare la transizione tra utenti frontend e backend, il progetto utilizza la tabella Users condivisa
'guards' => [ //... 'admin' => [] 'driver' => 'session', 'provider' => 'users', ], //... ],
Passo 3: Implementa la classe base
class AdminController extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { $this->middleware('auth:admin'); } }
Passo 4: Implementa il controller di login后台
Nuovo file 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 { /* |-------------------------------------------------------------------------- | Controller di Login |-------------------------------------------------------------------------- | | Questo controller gestisce l'autenticazione degli utenti per l'applicazione e | reindirizzandoli alla tua schermata iniziale. Il controller utilizza un trait | per fornire comodamente la sua funzionalità alle tue applicazioni. | */ use AuthenticatesUsers; /** * Dove reindirizzare gli utenti dopo il login. * * @var string */ protected $redirectTo = '/admin'; /** * Crea una nuova istanza del controller. * * @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'); } }
Completato
Sommario
Questo è tutto il contenuto dell'articolo, speriamo che il contenuto di questo articolo abbia un valore di riferimento per la tua apprendimento o lavoro. Se hai domande, puoi lasciare un messaggio per discuterne, grazie per il supporto al manuale di urla.
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, di proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a notice#oldtoolbag.com (sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.