En utilisant laravel5.5 pour implémenter une fonction, cet article vous présente principalement les informations pertinentes sur la façon dont Laravel 5.5 implémente la connexion frontale et backend basée sur le module Auth intégré. L'article le présente en détail à travers un exemple de code I. j'espère que cela pourra aider tout le monde.
La méthode est la suivante :
Étape 1 : Générer Auth
Une fois le projet établi, générez le composant Auth intégré :
php artisan make:auth
Étape 2 : Ajouter une garde
Ouvrez configauth.php Afin de faciliter le changement d'utilisateur front-end et back-end, le projet partage la table Utilisateurs
'guards' => [ //... 'admin' => [ 'driver' => 'session', 'provider' => 'users', ], //... ],
Étape 3 : Implémentez la classe de base
class AdminController extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { $this->middleware('auth:admin'); } }
Étape 4 : Implémentez le contrôleur de connexion en arrière-plan
Créez de nouveaux 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 { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/admin'; /** * Create a new controller instance. * * @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'); } }
Étape 5 : Accédez à différents chemins après la connexion
appMiddlewareRedirectIfAuthenticated.php
public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { $path = $guard ? '/admin' : '/home'; return redirect($path); } return $next($request); }
Étape 6 : Accédez à différentes pages de connexion si l'authentification n'est pas réussie
appExceptionsHandler.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); }else{ return in_array('admin', $exception->guards()) ? return redirect()->guest('/admin/login') : redirect()->guest('login'); } }
Recommandations associées :
Comment appeler le front et le backend avec javascript Résumé des exemples de méthodes
Introduction détaillée de Package Auto Discovery dans Laravel5.5
Nouvelles fonctionnalités de Laravel5.5, rapport d'erreurs et images et textes affichés Introduction
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!