English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Einleitung
Dieser Artikel beschreibt hauptsächlich das Thema Laravel 5.5Basierend auf dem integrierten Auth-Modul werden die Inhalte der Frontend- und Backend-Anmeldung behandelt. Weitere Informationen zum Auth-Modul finden Sie in diesem Artikel: https://de.oldtoolbag.com/article/121401.htm
不多说,让我们一起来详细了解吧。
方法如下:
Steps1:生成Auth
:在项目完成后,生成内置Auth组件:
php artisan make:auth
Steps2:添加guard
Öffnen Sie config\auth.php, um eine einfache Wechselmöglichkeit zwischen Vorder- und Backend-Benutzern zu ermöglichen, das Projekt verwendet die Users-Tabelle gemeinsam.
'guards' => [ //... 'admin' => [ 'driver' => 'session', 'provider' => 'users', ], //... ],
Steps3:实现基类
class AdminController extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { $this->middleware('auth:admin'); } }
Steps4:实现后台登录控制器
Erstellen Sie 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 |-------------------------------------------------------------------------- | | Dieser Controller kümmert sich um die Authentifizierung von Benutzern für die Anwendung und | sie auf Ihre Startseite zu leiten. Der Controller verwendet ein Trait | um seine Funktionalität bequem in Ihre Anwendungen zu integrieren. | */ 使用AuthenticatesUsers; /** * 用户登录后重定向到何处。 * * @var string */ protected $redirectTo = '/admin'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest:admin')->except('logout'); } /** * Rewrite the login page * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showLoginForm() { return view('backend.login'); } /** * Rewrite the logout method * @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'); } /** * Rewrite guard authentication * @return mixed */ protected function guard() { return Auth::guard('admin'); } }
Steps5: Implement redirection to different paths after login
app\Middleware\RedirectIfAuthenticated.php
public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { $path = $guard ? '/admin' : '/home'; return redirect($path); } return $next($request); }
Steps6: Redirect to different login pages after authentication failure
app\Exceptions\Handler.php
/** * Implement the redirection of unauthenticated users to the corresponding login page * @param \Illuminate\Http\Request $request * @param AuthenticationException $exception * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ geschützte Funktion unauthenticated($request, AuthenticationException $exception) { if($request->expectsJson()){ return response()->json(['message' => $exception->getMessage()], 401); }else{ return in_array('admin', $exception->guards()) &63; return redirect()->guest('/admin/login') : redirect()->guest('login'); } }
Erledigt
Zusammenfassung
Das ist der gesamte Inhalt dieses Artikels. Wir hoffen, dass der Inhalt für Ihre Lern- oder Arbeitsaktivitäten einen gewissen Referenzwert hat. Wenn Sie Fragen haben, können Sie gerne Kommentare hinterlassen. Vielen Dank für Ihre Unterstützung der Anleitung.
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheberrechtlichem Inhaber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie Inhalte finden, die urheberrechtlich geschützt sind, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @, wenn Sie eine Beschwerde einreichen, und fügen Sie relevante Beweise bei. Sobald nachgewiesen wird, dass Inhalte urheberrechtlich geschützt sind, wird diese Website die fraglichen Inhalte sofort löschen.)