加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

laravel5.2实现区分前后台用户登录的方法

发布时间:2020-12-14 19:53:44 所属栏目:大数据 来源:网络整理
导读:《:laravel5.2实现区分前后台用户登录的方法》要点: 本文介绍了:laravel5.2实现区分前后台用户登录的方法,希望对您有用。如果有疑问,可以联系我们。 PHP编程 1.前台登录 PHP编程 直接使用laravel自带的auth PHP编程 php artisan make:auth PHP编程 然后

《:laravel5.2实现区分前后台用户登录的方法》要点:
本文介绍了:laravel5.2实现区分前后台用户登录的方法,希望对您有用。如果有疑问,可以联系我们。

PHP编程1.前台登录

PHP编程直接使用laravel自带的auth

PHP编程
php artisan make:auth

PHP编程然后可以查看路由文件:

PHP编程
Route::group(['middleware' => 'web'],function () {
 Route::auth();
 Route::get('/home','HomeController@index');
});

PHP编程执行php artisan migrate

PHP编程会发现生成了两张表.

PHP编程2.后台登录

PHP编程编辑配置文件

PHP编程configauth.php

PHP编程添加guards中的admin和providers中的admins

PHP编程
<?php
return [
 'defaults' => [
  'guard' => 'web','passwords' => 'users',],'guards' => [
  'web' => [
   'driver' => 'session','provider' => 'users','admin' => [
   'driver' => 'session','provider' => 'admins','api' => [
   'driver' => 'token','providers' => [
  'users' => [
   'driver' => 'eloquent','model' => AppUser::class,'admins' => [
   'driver' => 'eloquent','model' => AppAdmin::class,'passwords' => [
  'users' => [
   'provider' => 'users','email' => 'auth.emails.password','table' => 'password_resets','expire' => 60,];

PHP编程3.创建数据模型

PHP编程执行php artisan make:model Admin --migration

PHP编程然后修改databasemigrations中的数据表结构,复制user表的就可以

PHP编程执行php artisan migrate 会发现生成了admin表

PHP编程4.定义后台路由

PHP编程这里我直接定义了一个路由组

PHP编程
Route::group(['prefix' => 'admin','middleware' => 'admin'],function () {
 Route::get('login','AdminAuthController@getLogin');
 Route::post('login','AdminAuthController@postLogin');
 Route::get('register','AdminAuthController@getRegister');
 Route::post('register','AdminAuthController@postRegister');
 Route::get('logout','AdminAuthController@logout');
 Route::get('/','AdminAdminController@index');
});

PHP编程5.创建控制器

PHP编程执行

PHP编程
php artisan make:controller Admin/AuthController
php artisan make:controller Admin/AdminController

PHP编程AuthController.php可参照Auth中的AuthController.php

PHP编程
<?php
namespace AppHttpControllersAdmin;
use AppAdmin;
use Validator;
use AppHttpControllersController;
use IlluminateFoundationAuthThrottlesLogins;
use IlluminateFoundationAuthAuthenticatesAndRegistersUsers;
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']),]);
 }
}

PHP编程AdminController.php

PHP编程
<?php
namespace AppHttpControllersAdmin;
use IlluminateHttpRequest;
use AppHttpRequests;
use AppHttpControllersController;
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');
 }
}

PHP编程6.创建视图

PHP编程这里直接复制auth中的视图和home.blade.php到一个新的admin文件夹中.?

PHP编程修改login和register中表单的action,添加上admin前缀

PHP编程修改layouts中的app.blade.php

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>

PHP编程现在试一下前后台分别登录吧!

PHP编程7.可能遇到的页面跳转问题

PHP编程如果你遇到了这种情况可以尝试修改一下MiddlewareAuthenticate.php

PHP编程
return redirect()->guest($guard.'/login');

PHP编程以上所述是小编给大家介绍的laravel5.2实现区分前后台用户登录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对编程之家网站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读