laravel5.2实现区分前后台用户登录的方法

发布时间 - 2026-01-10 22:26:48    点击率:

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实现区分前后台用户登录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# laravel实现登录  # Laravel实现用户注册和登录  # Laravel搭建后台登录系统步骤详解  # Laravel 自带的Auth验证登录方法  # Laravel 5.4重新登录实现跳转到登录前页面的原理和方法  # Laravel重写用户登录简单示例  # 利用Laravel事件系统如何实现登录日志的记录详解  # SSO单点登录的PHP实现方法(Laravel框架)  # Laravel5.2使用Captcha生成验证码实现登录(session巨坑)  # php的laravel框架快速集成微信登录的方法  # Laravel登录失败次数限制的实现方法  # 小编  # 如果你  # 在此  # 给大家  # 这种情况  # 跳转  # 两张  # 自带  # 表单  # 用户登录  # 所述  # 给我留言  # 配置文件  # 感谢大家  # 可以查看  # 就可以  # 疑问请  # 有任何  # 夹中  # model 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用花生壳三步快速搭建专属网站?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  phpredis提高消息队列的实时性方法(推荐)  高端建站三要素:定制模板、企业官网与响应式设计优化  lovemo网页版地址 lovemo官网手机登录  想要更高端的建设网站,这些原则一定要坚持!  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何在万网主机上快速搭建网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  百度浏览器如何管理插件 百度浏览器插件管理方法  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel如何实现API版本控制_Laravel版本化API设计方案  如何在腾讯云服务器上快速搭建个人网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  简单实现Android验证码  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何基于云服务器快速搭建个人网站?  如何快速搭建支持数据库操作的智能建站平台?  活动邀请函制作网站有哪些,活动邀请函文案?  高防服务器租用如何选择配置与防御等级?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel如何创建自定义Artisan命令?(代码示例)  如何在阿里云域名上完成建站全流程?  微信小程序 五星评分(包括半颗星评分)实例代码  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel中的withCount方法怎么高效统计关联模型数量  C#如何调用原生C++ COM对象详解  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何实现javascript表单验证_正则表达式有哪些实用技巧  浅析上传头像示例及其注意事项  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在云服务器上快速搭建个人网站?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  简单实现Android文件上传  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?