最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
laravel5.2实现区分前后台用户登录的方法
时间:2022-06-24 15:07:35 编辑:袖梨 来源:一聚教程网
1.前台登录
直接使用laravel自带的auth
php artisan make:auth |
然后可以查看路由文件:
Route::group(['middleware'=>'web'],function() { Route::auth(); Route::get('/home','HomeController@index'); }); |
执行php artisan migrate
会发现生成了两张表。
2.后台登录
编辑配置文件
configauth.php
添加guards中的admin和providers中的admins
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'=> AppUser::class, ], 'admins'=> [ 'driver'=>'eloquent', 'model'=> AppAdmin::class, ], ], 'passwords'=> [ 'users'=> [ 'provider'=>'users', 'email'=>'auth.emails.password', 'table'=>'password_resets', 'expire'=> 60, ], ], ]; |
3.创建数据模型
执行php artisan make:model Admin --migration
然后修改databasemigrations中的数据表结构,复制user表的就可以
执行php artisan migrate 会发现生成了admin表
4.定义后台路由
这里我直接定义了一个路由组
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'); }); |
5.创建控制器
执行
php artisan make:controller Admin/AuthController php artisan make:controller Admin/AdminController |
AuthController.php可参照Auth中的AuthController.php
namespaceAppHttpControllersAdmin; useAppAdmin; useValidator; useAppHttpControllersController; useIlluminateFoundationAuthThrottlesLogins; useIlluminateFoundationAuthAuthenticatesAndRegistersUsers; classAuthControllerextendsController { useAuthenticatesAndRegistersUsers, ThrottlesLogins; protected$redirectTo='/admin' protected$guard='admin' protected$loginView='admin.login' protected$registerView='admin.register' publicfunction__construct() { $this->middleware('guest:admin', ['except'=>'logout']); } protectedfunctionvalidator(array$data) { returnValidator::make($data, [ 'name'=>'required|max:255', 'email'=>'required|email|max:255|unique:admins', 'password'=>'required|confirmed|min:6', ]); } protectedfunctioncreate(array$data) { returnAdmin::create([ 'name'=>$data['name'], 'email'=>$data['email'], 'password'=> bcrypt($data['password']), ]); } } |
AdminController.php
namespaceAppHttpControllersAdmin; useIlluminateHttpRequest; useAppHttpRequests; useAppHttpControllersController; useAuth; classAdminControllerextendsController { publicfunction__construct() { $this->middleware('auth:admin'); } publicfunctionindex() { $admin= Auth::guard('admin')->user(); returnview('admin.home'); } } |
6.创建视图
这里直接复制auth中的视图和home.blade.php到一个新的admin文件夹中。
修改login和register中表单的action,添加上admin前缀
修改layouts中的app.blade.php
@if(Auth::guest('admin'))
@else {{ Auth::guard('admin')->user()->name }}
@endif
|
现在试一下前后台分别登录吧!
7.可能遇到的页面跳转问题
如果你遇到了这种情况可以尝试修改一下MiddlewareAuthenticate.php
returnredirect()->guest($guard.'/login'); |
相关文章
- 炉石传说血DK卡组怎么样 炉石传说血DK卡组推荐介绍 11-05
- 咒术回战幻影夜行官网在哪里 咒术回战幻影夜行官网地址介绍 11-05
- 蚂蚁庄园今天答题答案2024年10月26日 11-05
- 以闪亮之名变装物语甜趣篇怎么玩 11-05
- 闪耀暖暖永夜禁锢怎么玩 11-05
- 闪耀暖暖永夜禁锢怎么玩 闪耀暖暖永夜禁锢活动介绍 11-05