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

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

小云云
Libérer: 2023-03-18 08:22:01
original
2981 Les gens l'ont consulté

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
Copier après la connexion

É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',
 ],
 //...
 ],
Copier après la connexion

Étape 3 : Implémentez la classe de base

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

 public function __construct()
 {
 $this->middleware('auth:admin');
 }
}
Copier après la connexion

É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');
 }
}
Copier après la connexion

É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);
}
Copier après la connexion

É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');
 }
 }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal