laravel5.2實(shí)現(xiàn)區(qū)分前后臺用戶登錄的方法
1.前臺登錄
直接使用laravel自帶的auth
php artisan make:auth
然后可以查看路由文件:
Route::group(['middleware' => 'web'], function () { Route::auth(); Route::get('/home', 'HomeController@index'); });
執(zhí)行php artisan migrate
會發(fā)現(xiàn)生成了兩張表。
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.創(chuàng)建數(shù)據(jù)模型
執(zhí)行php artisan make:model Admin --migration
然后修改database\migrations中的數(shù)據(jù)表結(jié)構(gòu),復(fù)制user表的就可以
執(zhí)行php artisan migrate 會發(fā)現(xiàn)生成了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.創(chuàng)建控制器
執(zhí)行
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.創(chuàng)建視圖
這里直接復(fù)制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>
現(xiàn)在試一下前后臺分別登錄吧!
7.可能遇到的頁面跳轉(zhuǎn)問題
如果你遇到了這種情況可以嘗試修改一下Middleware\Authenticate.php
return redirect()->guest($guard.'/login');
以上所述是小編給大家介紹的laravel5.2實(shí)現(xiàn)區(qū)分前后臺用戶登錄的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Laravel實(shí)現(xiàn)用戶注冊和登錄
- Laravel搭建后臺登錄系統(tǒng)步驟詳解
- Laravel 自帶的Auth驗(yàn)證登錄方法
- Laravel 5.4重新登錄實(shí)現(xiàn)跳轉(zhuǎn)到登錄前頁面的原理和方法
- Laravel重寫用戶登錄簡單示例
- 利用Laravel事件系統(tǒng)如何實(shí)現(xiàn)登錄日志的記錄詳解
- SSO單點(diǎn)登錄的PHP實(shí)現(xiàn)方法(Laravel框架)
- Laravel5.2使用Captcha生成驗(yàn)證碼實(shí)現(xiàn)登錄(session巨坑)
- php的laravel框架快速集成微信登錄的方法
- Laravel登錄失敗次數(shù)限制的實(shí)現(xiàn)方法
相關(guān)文章
CodeIgniter框架實(shí)現(xiàn)的整合Smarty引擎DEMO示例
這篇文章主要介紹了CodeIgniter框架實(shí)現(xiàn)的整合Smarty引擎DEMO,結(jié)合實(shí)例形式分析了CodeIgniter框架整合Smarty引擎的原理、操作步驟及相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-03-03Laravel 框架控制器 Controller原理與用法實(shí)例分析
這篇文章主要介紹了Laravel 框架控制器 Controller原理與用法,結(jié)合實(shí)例形式分析了Laravel 控制器 Controller基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04laravel 查詢數(shù)據(jù)庫獲取結(jié)果實(shí)現(xiàn)判斷是否為空
今天小編就為大家分享一篇laravel 查詢數(shù)據(jù)庫獲取結(jié)果實(shí)現(xiàn)判斷是否為空,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10Laravel框架文件上傳功能實(shí)現(xiàn)方法示例
這篇文章主要介紹了Laravel框架文件上傳功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Laravel框架文件上傳相關(guān)步驟,包括配置、上傳功能實(shí)現(xiàn)技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-04-04PHP實(shí)現(xiàn)單條sql執(zhí)行多個數(shù)據(jù)的insert語句方法
今天小編就為大家分享一篇PHP實(shí)現(xiàn)單條sql執(zhí)行多個數(shù)據(jù)的insert語句方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10