Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Front-End- und Back-End-Anmeldung in Laravel 5.5 basierend auf dem integrierten Auth-Modul

Detaillierte Erläuterung der Front-End- und Back-End-Anmeldung in Laravel 5.5 basierend auf dem integrierten Auth-Modul

jacklove
jackloveOriginal
2018-07-05 17:38:351381Durchsuche

Ich habe kürzlich Laravel5.5 verwendet und eine Funktion implementiert, die ich im Folgenden mit Ihnen teilen werde. In diesem Artikel werden Ihnen hauptsächlich die relevanten Informationen darüber vorgestellt, wie Laravel 5.5 die Front-End- und Back-End-Anmeldung implementiert -in Auth-Modul. Der Code wird sehr detailliert vorgestellt. Lassen Sie uns mit dem Editor nachlesen.

Vorwort

Im Folgenden gibt es nicht viel zu sagen, werfen wir einen Blick auf die ausführliche Einleitung.

Die Methode ist wie folgt:

Schritt 1: Authentifizierung generieren

Nach dem Projekt ist eingerichtet, integrierte Authentifizierungskomponente generieren:

php artisan make:auth

Schritt 2: Schutz hinzufügen

Configauth.php öffnen Zur Vereinfachung des Front- und Backend-Benutzerwechsels teilen sich Projekte die Benutzertabelle

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

Schritt 3: Implementieren Sie die Basisklasse

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

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

Schritt 4: Hintergrund-Login-Controller implementieren

Neue 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;);
 }
}

Schritt 5: Nach der Anmeldung zu verschiedenen Pfaden springen

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);
}

Schritt 6: Implementierung der Umleitung auf verschiedene Anmeldeseiten, wenn die Authentifizierung fehlschlägt

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;);
 }
 }

Abgeschlossen

Zusammenfassung

Artikel, die Sie interessieren könnten:

So entfernen Sie Duplikate aus zweidimensionalen Arrays in PHP

Eine Zusammenfassung der Verwendung des Thinkphp5-Verhaltens

Ein Beispiel für Ajax+ PHP implementiert die Überprüfung der Mobiltelefonnummer ohne Aktualisierung

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Front-End- und Back-End-Anmeldung in Laravel 5.5 basierend auf dem integrierten Auth-Modul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn