> 백엔드 개발 > PHP 튜토리얼 > laravel5.2는 전면 사용자 로그인과 후면 사용자 로그인을 구별하는 방법을 구현합니다.

laravel5.2는 전면 사용자 로그인과 후면 사용자 로그인을 구별하는 방법을 구현합니다.

高洛峰
풀어 주다: 2023-03-04 19:16:01
원래의
1365명이 탐색했습니다.

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 [
 &#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,
  ],
 ],
];
로그인 후 복사

3. 데이터 모델 생성

php artisan make:model Admin --migration

을 실행한 다음 데이터베이스 마이그레이션에서 데이터 테이블을 수정합니다. 구조, 사용자 테이블을 복사하기만 하면 됩니다.

php artisan migration을 실행하면 관리 테이블이 생성됩니다

4. 백그라운드 경로를 정의합니다

여기서 라우팅 그룹

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;);
});
로그인 후 복사

를 직접 정의합니다. 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 = &#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;]),
  ]);
 }
}
로그인 후 복사


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;);
 }
}
로그인 후 복사

참조 6.

여기서 인증에 있는 뷰와 home.blade.php를 새 관리 폴더에 직접 복사하세요.

로그인 및 등록 시 양식 작업 수정, 관리자 접두사 추가

레이아웃에서 app.blade.php 수정

<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>
로그인 후 복사

이제 프론트엔드와 백엔드를 따로 로그인해 보세요!

7. 가능한 페이지 점프 문제

이러한 상황이 발생하면 MiddlewareAuthenticate.php

return redirect()->guest($guard.&#39;/login&#39;);
로그인 후 복사

를 수정해 볼 수 있습니다. 위 내용은 laravel5.2에서 전면 사용자 로그인과 후면 사용자 로그인의 구별을 실현하기 위해 편집자가 도입한 방법입니다. 궁금한 점이 있으면 메시지를 남겨주시면 편집자가 시간에 맞춰 답변해 드리겠습니다. . 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

laravel5.2의 전면 사용자 로그인과 후면 사용자 로그인 구별 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿