《PHP應用:laravel5.2實現(xiàn)區(qū)分前后臺用戶登錄的方法》要點:
本文介紹了PHP應用:laravel5.2實現(xiàn)區(qū)分前后臺用戶登錄的方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
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編程執(zhí)行php artisan migrate
PHP編程會發(fā)現(xiàn)生成了兩張表.
PHP編程2.后臺登錄
PHP編程編輯配置文件
PHP編程config\auth.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',
'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,
],
],
];
PHP編程3.創(chuàng)建數(shù)據(jù)模型
PHP編程執(zhí)行php artisan make:model Admin --migration
PHP編程然后修改database\migrations中的數(shù)據(jù)表結(jié)構,復制user表的就可以
PHP編程執(zhí)行php artisan migrate 會發(fā)現(xiàn)生成了admin表
PHP編程4.定義后臺路由
PHP編程這里我直接定義了一個路由組
PHP編程
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');
});
PHP編程5.創(chuàng)建控制器
PHP編程執(zhí)行
PHP編程
php artisan make:controller Admin/AuthController
php artisan make:controller Admin/AdminController
PHP編程AuthController.php可參照Auth中的AuthController.php
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']),
]);
}
}
PHP編程AdminController.php
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');
}
}
PHP編程6.創(chuàng)建視圖
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編程現(xiàn)在試一下前后臺分別登錄吧!
PHP編程7.可能遇到的頁面跳轉(zhuǎn)問題
PHP編程如果你遇到了這種情況可以嘗試修改一下Middleware\Authenticate.php
PHP編程
return redirect()->guest($guard.'/login');
PHP編程以上所述是小編給大家介紹的laravel5.2實現(xiàn)區(qū)分前后臺用戶登錄的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網(wǎng)站的支持!
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/2005.html