Maison  >  Article  >  développement back-end  >  Laravel 5.5 implémente la connexion front-end et back-end

Laravel 5.5 implémente la connexion front-end et back-end

小云云
小云云original
2017-12-21 14:16:182942parcourir

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 = &#39;/admin&#39;;
 /**
 * 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!

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