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

 更新时间:2017年01月11日 09:57:55   作者:励志成为一个弓箭手的程序猿  
这篇文章主要介绍了laravel5.2实现区分前后台用户登录的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

1.前台登录

直接使用laravel自带的auth

php artisan make:auth

然后可以查看路由文件:

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

执行php artisan migrate

会发现生成了两张表。

2.后台登录

编辑配置文件

config\auth.php

添加guards中的admin和providers中的admins

<?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

然后修改database\migrations中的数据表结构,复制user表的就可以

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

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可参照Auth中的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.创建视图

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

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

修改layouts中的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.可能遇到的页面跳转问题

如果你遇到了这种情况可以尝试修改一下Middleware\Authenticate.php

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

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

相关文章

  • php设计模式之职责链模式定义与用法经典示例

    php设计模式之职责链模式定义与用法经典示例

    这篇文章主要介绍了php设计模式之职责链模式定义与用法,结合完整实例形式详细分析了php职责链模式的概念、原理、定义与使用方法,注释中包含详细的说明,需要的朋友可以参考下
    2019-09-09
  • 实现WordPress主题侧边栏切换功能的PHP脚本详解

    实现WordPress主题侧边栏切换功能的PHP脚本详解

    这篇文章主要介绍了实现WordPress主题侧边栏切换功能的PHP脚本详解,包括为WordPress主题添加管理选项的方法,需要的朋友可以参考下
    2015-12-12
  • PHP常见漏洞攻击分析

    PHP常见漏洞攻击分析

    本文给大家介绍php常见漏洞攻击相关知识,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-02-02
  • PHP实现微信公众号验证Token的示例代码

    PHP实现微信公众号验证Token的示例代码

    这篇文章主要介绍了PHP实现微信公众号验证Token的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • PHP实现微信小程序人脸识别刷脸登录功能

    PHP实现微信小程序人脸识别刷脸登录功能

    本文通过实例代码给大家讲解了基于PHP实现微信小程序人脸识别刷脸登录功能,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • WordPress后台中实现图片上传功能的实例讲解

    WordPress后台中实现图片上传功能的实例讲解

    这篇文章主要介绍了WordPress后台中实现图片上传功能的实例讲解,包括多个图片上传表单功能的实现,需要的朋友可以参考下
    2016-01-01
  • Windows IIS PHP 5.2 安装与配置方法

    Windows IIS PHP 5.2 安装与配置方法

    Windows下PHP的安装虽然简单,但如果不注意方法,仍然会让你头疼。此外,PHP 5.2版本与之前4.x版本也有一些不同,所以有必要记录一下,避免下次忘记了这样的安装配置方法。
    2009-06-06
  • PHP检测移动设备类mobile detection使用实例

    PHP检测移动设备类mobile detection使用实例

    这篇文章主要介绍了PHP检测移动设备类mobile detection使用实例,mobile detection可以检测到绝大部分手机、平板电脑的操作系统、浏览器等数据,需要的朋友可以参考下
    2014-04-04
  • Laravel框架实现简单的学生信息管理平台案例【附源码下载】

    Laravel框架实现简单的学生信息管理平台案例【附源码下载】

    这篇文章主要介绍了Laravel框架实现简单的学生信息管理平台,结合具体案例形式较为详细的分析了基于Laravel框架的学生信息管理平台路由与控制器相关操作技巧,并附带完整源码供读者下载参考,需要的朋友可以参考下
    2019-05-05
  • PHP实现简单用户登录界面

    PHP实现简单用户登录界面

    这篇文章主要为大家详细介绍了PHP实现简单用户登录界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10

最新评论