Maison >développement back-end >tutoriel php >Explication détaillée de la connexion front-end et back-end dans Laravel 5.5 basée sur le module Auth intégré

Explication détaillée de la connexion front-end et back-end dans Laravel 5.5 basée sur le module Auth intégré

jacklove
jackloveoriginal
2018-07-05 17:38:351380parcourir

J'ai récemment utilisé laravel5.5 et implémenté une fonction. Je la partagerai avec vous ci-dessous. Cet article vous présente principalement les informations pertinentes sur la façon dont Laravel 5.5 implémente la connexion front-end et back-end basée sur le build. -dans le module Auth. L'article utilise des exemples. Le code est présenté de manière très détaillée. Les amis qui en ont besoin peuvent s'y référer. Apprenons avec l'éditeur.

Avant-propos

Pas grand chose à dire ci-dessous, jetons un œil à l'introduction détaillée.

La méthode est la suivante :

Étape 1 : Générer l'authentification

Après le projet est établi, générez des composants d'authentification intégrés :

php artisan make:auth

Étape 2 : Ajouter une garde

Ouvrir configuration .php pour plus de commodité Changement d'utilisateur front-end et back-end, les projets partagent la table Utilisateurs

'guards' => [
 //...
 'admin' => [
  'driver' => 'session',
  'provider' => 'users',
 ],
 //...
 ],

Étape 3 : Implémenter la classe de base

class AdminController extends BaseController
{
 use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

 public function __construct()
 {
 $this->middleware('auth:admin');
 }
}

Étape 4 : Implémenter le contrôleur de connexion en arrière-plan

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 = &#39;/admin&#39;;
 /**
 * Create a new controller instance.
 *
 * @return void
 */
 public function __construct()
 {
 $this->middleware(&#39;guest:admin&#39;)->except(&#39;logout&#39;);
 }
 /**
 * 重写登陆页面
 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 */
 public function showLoginForm()
 {
 return view(&#39;backend.login&#39;);
 }
 /**
 * 重写退出方法
 * @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(&#39;/admin/login&#39;);
 }
 /**
 * 重写guard认证
 * @return mixed
 */
 protected function guard()
 {
 return Auth::guard(&#39;admin&#39;);
 }
}

É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 ? &#39;/admin&#39; : &#39;/home&#39;;
  return redirect($path);
 }
 return $next($request);
}

Étape 6 : Accédez à différentes pages de connexion si l'authentification échoue

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([&#39;message&#39; => $exception->getMessage()], 401);
 }else{
  return in_array(&#39;admin&#39;, $exception->guards()) ? return redirect()->guest(&#39;/admin/login&#39;) : redirect()->guest(&#39;login&#39;);
 }
 }

Complet

Résumé

Articles qui pourraient vous intéresser :

Comment supprimer les doublons des tableaux bidimensionnels en PHP

Un résumé de l'utilisation du comportement Thinkphp5

ajax+php Un exemple de mise en œuvre de la vérification du numéro de téléphone mobile sans actualisation

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn