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
<?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' => 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
<?php
namespace apphttpcontrollersadmin;
use appadmin;
use validator;
use apphttpcontrollerscontroller;
use illuminatefoundationauththrottleslogins;
use illuminatefoundationauthauthenticatesandregistersusers;
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 apphttpcontrollersadmin;
use illuminatehttprequest;
use apphttprequests;
use apphttpcontrollerscontroller;
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.可能遇到的页面跳转问题
如果你遇到了这种情况可以尝试修改一下middlewareauthenticate.php
return redirect()->guest($guard.'/login');
以上所述是小编给大家介绍的laravel5.2实现区分前后台用户登录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对硕编程网站的支持!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!