Heim >Backend-Entwicklung >PHP-Tutorial >Laravel 5.5 implementiert Front-End- und Back-End-Login

Laravel 5.5 implementiert Front-End- und Back-End-Login

小云云
小云云Original
2017-12-21 14:16:182984Durchsuche

In diesem Artikel werden Ihnen hauptsächlich die relevanten Informationen zur Implementierung der Front- und Backend-Anmeldung anhand des integrierten Auth-Moduls vorgestellt Ich hoffe, es kann allen helfen.

Die Methode ist wie folgt:

Schritt 1: Authentifizierung generieren

Nachdem das Projekt eingerichtet ist, generieren Sie die integrierte Authentifizierungskomponente:

php artisan make:auth

Schritt 2: Schutz hinzufügen

Configauth.php öffnen Um den Front-End- und Back-End-Benutzerwechsel zu erleichtern, teilt das Projekt 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 erstellen

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

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

Schritt 6: Zu anderen Anmeldeseiten springen, wenn die Authentifizierung nicht bestanden wird

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

Verwandte Empfehlungen :

So rufen Sie das Front- und Backend mit Javascript auf. Zusammenfassung der Methodenbeispiele

Detaillierte Einführung in die automatische Paketerkennung in Laravel5.5

Laravel5.5 neue Funktionen, Fehlerberichterstattung und angezeigte Bilder und Texte Einführung

Das obige ist der detaillierte Inhalt vonLaravel 5.5 implementiert Front-End- und Back-End-Login. 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