laravel 用户登录认证(Laravel5.5 实现后台管理登录的方法自定义用户表登录)
laravel 用户登录认证
Laravel5.5 实现后台管理登录的方法自定义用户表登录最近群里很多人文档,laravel如何做会员和管理两个身份登录,今天把教程分享一下
自定义用户表登录
认证是由 guards 和 providers 两部分构成的, defaults 配置是默认选择一个 guard 认证驱动,所以我们在这两个配置项中分别添加一个 admin 和 admins 选项。
|
<?php 'guards' => [ 'web' => [ 'driver' => 'session' , 'provider' => 'users' , ], 'admin' => [ 'driver' => 'session' , 'provider' => 'admins' , ], 'providers' => [ 'users' => [ 'driver' => 'eloquent' , 'model' => App\User:: class , ], 'admins' => [ 'driver' => 'eloquent' , 'model' => App\Models\Admin:: class , ], ], |
标红的是我们后添加的后台管理员登录身份
创建后台用户表和model
|
php artisan make:model Admin php artisan make:migration creaet_admins_table |
在数据库迁移文件 _create_admins_table , 我们可以复制 users 迁移文件里的字段
|
Schema::create( 'admins' , function (Blueprint $table ) { $table ->increments( 'id' ); $table ->string( 'name' ); $table ->string( 'email' ); $table ->string( 'password' ); $table ->rememberToken(); $table ->timestamps(); }); |
执行php artisan migrate
生成临时数据
在 database/factories/ModelFactory.php, 添加如下数据:
|
$factory ->define(App\Admin:: class , function (Faker\Generator $faker ) { static $password ; return [ 'name' => $faker ->name, 'password' => $password ?: $password = bcrypt( '123456' ), 'email' => $faker ->email, 'remember_token' => str_random(10), ]; }); |
打开命令行输入:
|
php artisan tinker use App; factory(App\Admin:: class ,5)->create() //生成5条测试数据,你要几条就输入多少(Class,num) |
更改 Admin 模型类
|
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class Admin extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name' , 'email' , 'password' , ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password' , 'remember_token' , ]; } |
创建控制器
|
php artisan make:controller Admin/LoginController php artisan make:controller Admin/AdminController |
编辑 Admin/LoginController.php:
|
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\ThrottlesLogins; use Illuminate\Foundation\Auth\AuthenticatesUsers; class LoginController extends Controller { use AuthenticatesUsers; /** * Where to redirect users after login / registration. * * @var string */ protected $redirectTo = '/admin/index' ; protected $username ; /** * Create a new controller instance. * * @return void */ public function __construct() { $this ->middleware( 'guest:admin' , [ 'except' => 'logout' ]); $this ->username = config( 'admin.global.username' ); } /** * 重写登录视图页面 */ public function showLogin() { return view( 'admin.login.index' ); } /** * 自定义认证驱动 * @return mixed */ protected function guard() { return auth()->guard( 'admin' ); } } |
修改 app\Http\Middleware\RedirectIfAuthenticated.php:
|
public function handle( $request , Closure $next , $guard = null) { if (Auth::guard( $guard )->check()) { // 根据不同 guard 跳转到不同的页面 $url = $guard ? 'admin/dash' : '/home' ; return redirect( $url ); } return $next ( $request ); } |
编辑 Admin\AdminController.php:
|
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; class AdminController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this ->middleware( 'auth.admin:admin' ); } // public function index() { dd( '用户名:' .auth( 'admin' )->user()->name); } |
编辑 app\Http\Middleware\AdminAuthMiddleware.php
|
public function handle( $request , Closure $next , $guard = null) { if (Auth::guard( $guard )->guest()) { if ( $request ->ajax() || $request ->wantsJson()) { return response( 'Unauthorized.' , 401); } else { return redirect()->guest( 'admin/login' ); } } return $next ( $request ); } |
在 app\Http\Kernel.php 中注册:
|
protected $routeMiddleware = [ ··· ··· 'auth.admin' => \App\Http\Middleware\AdminAuthMiddleware:: class , ]; |
注册路由
编辑 routes/web.php :
|
Route::group([ 'prefix' => 'admin' , 'namespace' => 'Admin' ], function ( $router ) { $router ->get( 'login' , 'LoginController@showLogin' )->name( 'admin.login' ); $router ->post( 'login' , 'LoginController@login' ); $router ->post( 'logout' , 'LoginController@logout' ); $router ->get( 'index' , 'AdminController@index' ); }); |
视图文件创建和修改
复制 resources\views\auth\login.blade.php,到 resources\views\admin\login\index.blade.php,修改表单提交地址
|
{{ url( '/login' ) }} 改成 {{ route( 'admin.login' ) }} |
访问 你的站点/admin/login
以上这篇Laravel5.5 实现后台管理登录的方法(自定义用户表登录)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/sunjinyan_1/article/details/80927611
- pyqt5 登录界面(pyqt5利用pyqtDesigner实现登录界面)
- python微信消息模拟请求(python实现微信机器人: 登录微信、消息接收、自动回复功能)
- python 爬虫图形验证码(Python爬虫实现验证码登录代码实例)
- django后台运行命令(Django框架实现的普通登录案例使用POST方法)
- php实现无cookie的session(php实现多站点共用session实现单点登录的方法详解)
- laravel 用户登录认证(Laravel5.5 实现后台管理登录的方法自定义用户表登录)
- ucenter安装配置(使用ucenter实现多站点同步登录的讲解)
- python3编程过程(Python3模拟登录操作实例分析)
- 登录宝塔面板无法显示网站(宝塔bt面板如何设置自定义404错误页面)
- sqlserver新建连接服务器卡住(SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案)
- php 会话session实现用户登录功能(PHP cookie,session的使用与用户自动登录功能实现方法分析)
- springboot+vue项目演示(springboot+VUE实现登录注册)
- 如何激活ubunturoot账号(欧洲vps安装Ubuntu系统如何设置root登录)
- dedecms安全设置(织梦系统DedeCMS设定栏目及文档权限登录后跳转到登陆前的页面的实现方法)
- php开发api接口登录(PHP调用接口API封装的例子)
- django实现登录注册(django与小程序实现登录验证功能的示例代码)
- 《祝卿好》台词又土又甜,就喜欢这么直接的恋爱(祝卿好台词又土又甜)
- 大女主 汤唯垂青电视圈,搭档朱亚文出演《大明皇妃孙若微传》(汤唯垂青电视圈)
- 红色代表什么(红色代表什么情感和含义)
- 高中数学题(高中数学题型总结及解题方法)
- 冰岛旅游攻略(冰岛旅游攻略及花费)
- 为什么现在年轻人越来越喜欢买衣服(为什么现在年轻人越来越喜欢买衣服穿)
热门推荐
- html5最好用语义元素(HTML5语义化元素你真的用对了吗)
- 将docker中的镜像打包教程(本地使用docker打包部署镜像的方法)
- idea 部署到tomcat 的项目在哪儿(使用IDEA创建Web项目并发布到tomcat的操作方法)
- python对列表排序(Python实现对特定列表进行从小到大排序操作示例)
- docker 清除none镜像(删除docker images中为none的镜像操作)
- dedecms数据库优化(dedecms友情链接flink增加下拉菜单的方法)
- Python实现模拟点击(用python实现刷点击率的示例代码)
- asp.net中使用ueditor
- JQuery中serialize()
- C#栈和堆的区别
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9