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

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

时间: 2024-09-28 10:12:11

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

.Net 如何限制用户登录的方法

 这篇文章主要介绍了.Net 如何限制用户登录的方法,有需要的朋友可以参考一下 名词解析        1.Cookies 按照英文单词翻译过来是"甜点"的意思.这个和我们计算机貌似没有什么关系.我们这里说的Cookies是指服务器在暂存在计算机上的一段资料.          2.Session 按照英文单词翻译过来是"会话"的意思.存在于服务器的内存中.    限制用户登录的一下场景         1.比如QQ 我们在一处登录QQ之后.如果我们在另一台电脑上再

.Net 如何限制用户登录的方法_实用技巧

名词解析       1.Cookies 按照英文单词翻译过来是"甜点"的意思.这个和我们计算机貌似没有什么关系.我们这里说的Cookies是指服务器在暂存在计算机上的一段资料.        2.Session 按照英文单词翻译过来是"会话"的意思.存在于服务器的内存中.  限制用户登录的一下场景        1.比如QQ 我们在一处登录QQ之后.如果我们在另一台电脑上再次登录这个时候就会被踢下线         2.我使用的邮箱也有上面情况      这样做在

php apache PHP_AUTH_USER用户登录的方法

PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header() 函数来向客户端浏览器发送"Authentication Required"信息,使其弹出一个用户名/密码输入窗口.当用户输入用户名和密码后,包含有 URL 的 PHP 脚本将会再次和预定义变量 PHP_AUTH_USER.PHP_AUTH_PW 和 AUTH_TYPE 一起被调用,这三个变量分别被设定为

Laravel重写用户登录简单示例_php实例

本文实例讲述了Laravel重写用户登录的方法.分享给大家供大家参考,具体如下: class AuthController extends Controller { // use ThrottlesLogins, AuthenticatesAndRegistersUsers; protected $redirectTo = 'admin/index'; protected $loginView = 'admin/login'; protected $guard = 'admin'; protec

linux 让ssh只允许指定的用户登录的权限设置

方法一,只允许ssh指定用户登录权限的设置 SSH远程登录的权限直接影响服务器的安全,为ssh设置合理的用户权限是必须的. 查看ssh版本的命令: ssh -v 设置ssh只允许指定用户登录的方法 在/etc/ssh/sshd_config文件中添加如下语句 允许admin可以在任何地方登录 AllowUsers admin 只允许指定ip地址的用户可以登录 #允许root用户只能在192.168.0.1地方登录 AllowUsers root@192.168.0.1 同时限制用户名和ip登录s

Laravel重写用户登录简单示例

本文实例讲述了Laravel重写用户登录的方法.分享给大家供大家参考,具体如下: class AuthController extends Controller { // use ThrottlesLogins, AuthenticatesAndRegistersUsers; protected $redirectTo = 'admin/index'; protected $loginView = 'admin/login'; protected $guard = 'admin'; protec

txt文件-java的问题,用户登录后怎么和订单对应

问题描述 java的问题,用户登录后怎么和订单对应 因为用户user.java,ticket.java,都已经做好属性,登录可以用,但是怎么区分不同的用户买的ticket?我的订单是用txt读入导出的.所有的用户买的ticket都写入一个txt里面!当登录不同用户的时候怎么让txt读出显示各自的票?还有就是User u=new User();到底是写在哪里?写在注册登录(我注册登录的放在一个class)的话,那后面订票部分怎么用登录的u的信息?好表明这是u的票呢?仅是在控制台显示的简陋的程序,不

JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)_java

下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

拒绝平庸:浅谈用户登录页面的设计表现形式

用户活跃度是检验产品成功与否的重要指标之一,传统行业的商家极为重视门面的装潢,因为一个好的门面可以聚集人气,招揽更多的顾客.古时候的大户人家院子门口的石狮子或其他的摆件的摆放极为讲究,有一定的风水学说道理,更能彰显主人家的身份地位.由此可见,"门面'就如人的脸面之于人的形象一样重要,而WEB的登录页面就相当传统的"门面". 现在越来越多的大型网站把登录和首页放在一起设计,由此可见登录页面的重要性,一个出彩的登录界面,将提升产品的品质,赋予产品独特的气质,登录界面也是一个发挥情