1. 프런트 데스크에서 로그인
laravel 자체 인증을 직접 사용
php artisan make:auth
라우팅 파일을 볼 수 있습니다:
Route::group(['middleware' => 'web'], function () { Route::auth(); Route::get('/home', 'HomeController@index'); });
php artisan migration
을 실행하면 두 개의 테이블이 생성되는 것을 확인할 수 있습니다.
2. 백그라운드 로그인
구성 파일 편집
configauth.php
경비원에 관리자 추가
<?php return [ 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ], ], 'passwords' => [ 'users' => [ 'provider' => 'users', 'email' => 'auth.emails.password', 'table' => 'password_resets', 'expire' => 60, ], ], ];
3. 데이터 모델 생성
php artisan make:model Admin --migration
을 실행한 다음 데이터베이스 마이그레이션에서 데이터 테이블을 수정합니다. 구조, 사용자 테이블을 복사하기만 하면 됩니다.
php artisan migration을 실행하면 관리 테이블이 생성됩니다
4. 백그라운드 경로를 정의합니다
여기서 라우팅 그룹
Route::group(['prefix' => 'admin' ,'middleware' => 'admin'], function () { Route::get('login', 'Admin\AuthController@getLogin'); Route::post('login', 'Admin\AuthController@postLogin'); Route::get('register', 'Admin\AuthController@getRegister'); Route::post('register', 'Admin\AuthController@postRegister'); Route::get('logout', 'Admin\AuthController@logout'); Route::get('/', 'Admin\AdminController@index'); });
를 직접 정의합니다. 5. 컨트롤러를 생성하고
php artisan make:controller Admin/AuthController php artisan make:controller Admin/AdminController
AuthController를 실행합니다. .php AuthController.php
<?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 = '/admin'; protected $guard = 'admin'; protected $loginView = 'admin.login'; protected $registerView = 'admin.register'; public function __construct() { $this->middleware('guest:admin', ['except' => 'logout']); } protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:admins', 'password' => 'required|confirmed|min:6', ]); } protected function create(array $data) { return Admin::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); } }
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('auth:admin'); } public function index() { $admin = Auth::guard('admin')->user(); return view('admin.home'); } }
참조 6.
여기서 인증에 있는 뷰와 home.blade.php를 새 관리 폴더에 직접 복사하세요.
로그인 및 등록 시 양식 작업 수정, 관리자 접두사 추가
레이아웃에서 app.blade.php 수정
<ul class="nav navbar-nav navbar-right"> <!-- Authentication Links --> @if (Auth::guest('admin')) <li><a href="{{ url('/login') }}">Login</a></li> <li><a href="{{ url('/register') }}">Register</a></li> @else <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> {{ Auth::guard('admin')->user()->name }} <span class="caret"></span> </a> <ul class="dropdown-menu" role="menu"> <li><a href="{{ url('/admin/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li> </ul> </li> @endif </ul>
이제 프론트엔드와 백엔드를 따로 로그인해 보세요!
7. 가능한 페이지 점프 문제
이러한 상황이 발생하면 MiddlewareAuthenticate.php
return redirect()->guest($guard.'/login');
를 수정해 볼 수 있습니다. 위 내용은 laravel5.2에서 전면 사용자 로그인과 후면 사용자 로그인의 구별을 실현하기 위해 편집자가 도입한 방법입니다. 궁금한 점이 있으면 메시지를 남겨주시면 편집자가 시간에 맞춰 답변해 드리겠습니다. . 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!
laravel5.2의 전면 사용자 로그인과 후면 사용자 로그인 구별 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!