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实现区分前后台用户登录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
- 如果我们需要安培Laravel4的话最php最低要求要在php5.3.7版本并且我们需要把mcrypt与openss这两个扩展开启才可以,具体步骤我们参考下文。 前面我们介绍我了 com...2016-11-25
Laravel 调试工具 laravel-debugbar 打印日志消息
laravel-debugbar 调试工具的教程小编整理了几篇不错的教程,今天我们来看一篇Laravel 调试工具 laravel-debugbar 打印日志消息例子,希望文章对各位有帮助。 其实不...2016-11-25Laravel 5.1中定义事件、事件监听器以及触发事件例子
下文我们来看一篇关于Laravel 5.1中定义事件、事件监听器以及触发事件例子,希望能够帮助到各位新手朋友的哦。 这里我们基于之前基于模型+缓存对文章增删改查这篇...2016-11-25- Laravel框架我们用到的不多了,但如果使用需要搭配了,下面我们来看一篇关于搭建php Laravel框架教程详解,具体的操作细节如下所示,希望对各位有帮助。 一、安装 Compos...2016-11-25
- 你可能想创建一个在应用的任何地方都可以访问的函数,这个篇文章将带你解决此问题,感兴趣的同学,可以参考下。...2021-05-27
- Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁...2016-11-25
- 数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,本文重点通过实例给大家讲解 laravel中的多对多关系,感兴趣的朋友一起看看吧 数据表之间是纵...2017-07-06
- 分享一段利用PHP实现QQ登陆的代码,原理是用curl模拟发送post登录,cookie保存本地,实现真正的3GQQ登陆,对php实现qq登录相关知识感兴趣的朋友一起学习吧...2016-01-16
- 本文给大家讲解的是在laravel中是怎么实现autoload的?分析之后才发现,真的是很巧妙,下面就来给大家详细说明下...2017-05-21
- Laravel的主要技术特点:1、Bundle是Laravel的扩展包组织形式或称呼。Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装到你的应用中。你可以选择下载一个扩展包(bundle)然后拷贝到bundles目录,或者...2015-10-21
- 这篇文章主要介绍了js微信扫描二维码登录网站技术原理,具有一定的参考价值,有需要的可以了解一下。...2016-12-02
PHP框架Laravel中实现supervisor执行异步进程的方法
这篇文章主要给大家介绍了PHP框架Laravel中实现supervisor执行异步进程的方法,文中介绍的非常详细,相信对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-11- 这篇文章主要介绍了MySQL基于DOS命令行登录操作,以图文形式结合实例说明了MySQL登录命令的基本用法,非常简单易懂需要的朋友可以参考下...2016-01-15
- 下面小编就为大家带来一篇jquery实现无刷新验证码的简单实例。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
laravel Eloquent模型创建、更新及批量赋值详解
下面我们来看一篇关于laravel Eloquent模型创建、更新及批量赋值详解,希望文章能够让各位清楚的了解Eloquent模型的基本知识的哦。 1、创建模型 1.1 使用save方...2016-09-14- 这篇文章主要介绍了laravel 表单验证实现多个字段组合后唯一,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-06
- 数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,本文重点通过实例给大家讲解 laravel中的多对多关系,感兴趣的朋友一起看看吧...2017-06-11
- Laravel是一套简洁、优雅的PHP Web开发框架 (PHP Web Framework) 。在世界(不含中国)PHP框架的占有率超过40%。自从接触PHP以来一直使用Yii,感觉Yii实现功能比较简单,是一个很不错的框架。最近由于工作的原因开始研究Lar...2015-10-30
- 这篇文章主要介绍了Laravel的加密解密与哈希实例讲解,加密解密的知识,对于代码安全还是比较重要的,有感兴趣的同学可以学习下...2021-03-20
- 多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题,下面这篇文章主要给大家介绍了关于laravel多对多关联模型的相关资料,需要的朋友可以参考下...2021-08-11