laravel5.2 realisiert die Methode zur Unterscheidung der vorderen und hinteren Benutzeranmeldung

高洛峰
Freigeben: 2023-03-04 19:16:01
Original
1343 Leute haben es durchsucht

1. Melden Sie sich an der Rezeption an

Verwenden Sie direkt Laravels eigene Authentifizierung

php artisan make:auth
Nach dem Login kopieren

Dann können Sie die Routing-Datei einsehen:

Route::group(['middleware' => 'web'], function () {
 Route::auth();
 Route::get('/home', 'HomeController@index');
});
Nach dem Login kopieren

Führen Sie php artisan migrate

aus und Sie werden feststellen, dass zwei Tabellen generiert werden.

2. Hintergrundanmeldung

Konfigurationsdatei bearbeiten

configauth.php

Administrator in Guards und Admins in Provider hinzufügen

<?php
return [
 &#39;defaults&#39; => [
  &#39;guard&#39; => &#39;web&#39;,
  &#39;passwords&#39; => &#39;users&#39;,
 ],
 &#39;guards&#39; => [
  &#39;web&#39; => [
   &#39;driver&#39; => &#39;session&#39;,
   &#39;provider&#39; => &#39;users&#39;,
  ],
  &#39;admin&#39; => [
   &#39;driver&#39; => &#39;session&#39;,
   &#39;provider&#39; => &#39;admins&#39;,
  ],
  &#39;api&#39; => [
   &#39;driver&#39; => &#39;token&#39;,
   &#39;provider&#39; => &#39;users&#39;,
  ],
 ],
 &#39;providers&#39; => [
  &#39;users&#39; => [
   &#39;driver&#39; => &#39;eloquent&#39;,
   &#39;model&#39; => App\User::class,
  ],
  &#39;admins&#39; => [
   &#39;driver&#39; => &#39;eloquent&#39;,
   &#39;model&#39; => App\Admin::class,
  ],
 ],
 &#39;passwords&#39; => [
  &#39;users&#39; => [
   &#39;provider&#39; => &#39;users&#39;,
   &#39;email&#39; => &#39;auth.emails.password&#39;,
   &#39;table&#39; => &#39;password_resets&#39;,
   &#39;expire&#39; => 60,
  ],
 ],
];
Nach dem Login kopieren

3. Erstellen Sie das Datenmodell

Führen Sie php artisan make:model Admin --migration aus

und ändern Sie dann die Datenbankmigrationsdaten Tabellenstruktur, kopieren Sie einfach die Benutzertabelle

Führen Sie php artisan migrate aus und Sie werden feststellen, dass die Admin-Tabelle generiert wird

Definieren Sie die Hintergrundroute

I Definieren Sie es direkt hier. Erstellen Sie eine Routing-Gruppe

Route::group([&#39;prefix&#39; => &#39;admin&#39; ,&#39;middleware&#39; => &#39;admin&#39;], function () {
 Route::get(&#39;login&#39;, &#39;Admin\AuthController@getLogin&#39;);
 Route::post(&#39;login&#39;, &#39;Admin\AuthController@postLogin&#39;);
 Route::get(&#39;register&#39;, &#39;Admin\AuthController@getRegister&#39;);
 Route::post(&#39;register&#39;, &#39;Admin\AuthController@postRegister&#39;);
 Route::get(&#39;logout&#39;, &#39;Admin\AuthController@logout&#39;);
 Route::get(&#39;/&#39;, &#39;Admin\AdminController@index&#39;);
});
Nach dem Login kopieren

5. Erstellen Sie einen Controller

und führen Sie

php artisan make:controller Admin/AuthController
php artisan make:controller Admin/AdminController
Nach dem Login kopieren

<🎜 aus >

AuthController.php kann auf AuthController.php in Auth verweisen

<?php
namespace App\Http\Controllers\Admin;
use App\Admin;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
 use AuthenticatesAndRegistersUsers, ThrottlesLogins;
 protected $redirectTo = &#39;/admin&#39;;
 protected $guard = &#39;admin&#39;;
 protected $loginView = &#39;admin.login&#39;;
 protected $registerView = &#39;admin.register&#39;;
 public function __construct()
 {
  $this->middleware(&#39;guest:admin&#39;, [&#39;except&#39; => &#39;logout&#39;]);
 }
 protected function validator(array $data)
 {
  return Validator::make($data, [
   &#39;name&#39; => &#39;required|max:255&#39;,
   &#39;email&#39; => &#39;required|email|max:255|unique:admins&#39;,
   &#39;password&#39; => &#39;required|confirmed|min:6&#39;,
  ]);
 }
 protected function create(array $data)
 {
  return Admin::create([
   &#39;name&#39; => $data[&#39;name&#39;],
   &#39;email&#39; => $data[&#39;email&#39;],
   &#39;password&#39; => bcrypt($data[&#39;password&#39;]),
  ]);
 }
}
Nach dem Login kopieren


AdminController.php

<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Auth;
class AdminController extends Controller
{
 public function __construct()
 {
  $this->middleware(&#39;auth:admin&#39;);
 }
 public function index()
 {
  $admin = Auth::guard(&#39;admin&#39;)->user();
  return view(&#39;admin.home&#39;);
 }
}
Nach dem Login kopieren

6. Erstellen Sie eine Ansicht

Kopieren Sie hier direkt die Ansicht und home.blade.php in Auth in einen neuen Admin-Ordner.


Ändern Sie die Aktion des Formulars beim Anmelden und Registrieren, fügen Sie das Admin-Präfix hinzu

Ändern Sie app.blade.php in Layouts

<ul class="nav navbar-nav navbar-right">
     <!-- Authentication Links -->
     @if (Auth::guest(&#39;admin&#39;))
      <li><a href="{{ url(&#39;/login&#39;) }}">Login</a></li>
      <li><a href="{{ url(&#39;/register&#39;) }}">Register</a></li>
     @else
      <li class="dropdown">
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
        {{ Auth::guard(&#39;admin&#39;)->user()->name }} <span class="caret"></span>
       </a>
       <ul class="dropdown-menu" role="menu">
        <li><a href="{{ url(&#39;/admin/logout&#39;) }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
       </ul>
      </li>
     @endif
    </ul>
Nach dem Login kopieren

Versuchen Sie nun, sich im Front- und Backend getrennt anzumelden!

7. Mögliche Seitensprungprobleme

Wenn diese Situation auftritt, können Sie versuchen, MiddlewareAuthenticate.php zu ändern

return redirect()->guest($guard.&#39;/login&#39;);
Nach dem Login kopieren

Das Obige ist Die Methode, die Ihnen der Herausgeber in laravel5.2 vorstellt, um die Unterscheidung zwischen vorderer und hinterer Benutzeranmeldung zu erkennen, wird Ihnen hoffentlich weiterhelfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht rechtzeitig. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!

Weitere verwandte Artikel zur Methode von laravel5.2 zur Unterscheidung zwischen vorderen und hinteren Benutzeranmeldungen finden Sie auf der chinesischen PHP-Website!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage