Laravel 自带的Auth验证登录方法


Posted in PHP onSeptember 30, 2019

在laravel有自带的登录验证。只要建立对应的表和配置一些文件就能够使用,无需开发者自己去实现登录逻辑。

第一步:配置方面

在config下的auth.php配置guards 和 providers 。 之后新建文件和数据库名称要和这里的对应。

'guards' => [
  'web' => [
   'driver' => 'session',
   'provider' => 'users',
  ],

  'api' => [
   'driver' => 'token',
   'provider' => 'users',
  ],
  //Laravel Auth 验证登录
  'admin' => [
   'driver' => 'session',
   'provider' => 'admins',
  ]

 ],
'providers' => [
  'users' => [
   'driver' => 'eloquent',
   'model' => App\User::class,
  ],

  'admins' => [
   'driver' => 'eloquent',
   'model' => App\Admin::class,
  ],

  // 'users' => [
  //  'driver' => 'database',
  //  'table' => 'users',
  // ],
 ],

第二步:数据库方面

1 新建admins表,作为后台用户表

Laravel 自带的Auth验证登录方法

其中remember_token 用于是否记住用户

2 在app目录下新建Admin.php 文件对应,文件名称取决于配置文件中的名称

<?php
namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class Admin extends Authenticatable
{

 protected $fillable = [
  'username', 'password',
 ];

 protected $hidden = [ 
  //remember_token 字段用于记住我的功能
  'password', 'remember_token',
 ];

 public static $rules = [
  'username'=>'required',
  'password'=>'required'
 ];
}

Laravel 自带的Auth验证登录方法

第三步:控制器中auth的使用

Auth::guard('admin')->attempt($credentials)); 尝试登录
Auth::guard($guard)->guest();判断用户是否来宾,可用于中间件,判断用户是否登录,返回false,则已经登录,反之,跳转会登录页面
Auth::guard($guard)->user();获取已经登录的用户信息,注意在__construct()中无法获取,可以在中间件里面获取
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class AdminAuthMiddleware
{
 /**
  * Handle an incoming request.
  *
  * @param \Illuminate\Http\Request $request
  * @param \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next, $guard = null)
 {
  //如果没有指定的话,默认 guard 是 web,
  //dump(Auth::guard($guard)->check()); 判断用户是否认证
  //Auth::guard($guard)->user() 获取用户信息
  //Auth::guard($guard)->guest() 是否是来宾
 if(Auth::guard($guard)->guest()){
 if($request->ajax() || $request->wantsJson()){
 return response('Unauthorized.', 401);
 }else{
 return redirect()->guest('admin/login');
 }
 }

  return $next($request);
 }
}
$credentials = $request->only('username', 'password');

   /**
    * 使用laravel自带的Auth登录
    * 1、密码使用的是hash加密 $crypt = password_hash($password, PASSWORD_DEFAULT);
    */
   if(Auth::guard('admin')->attempt($credentials)){
    return response()->json(['code' => 200, 'msg' => '登录成功']);
   }else{
    return response()->json(['code' => 403, 'msg' => '用户名或密码错误']);
   }

以上这篇Laravel 自带的Auth验证登录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 向访客和爬虫显示不同的内容
Nov 09 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php生成圆角图片的方法
Apr 07 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
PHP正则表达式匹配替换与分割功能实例浅析
Feb 04 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 PHP
laravel 使用auth编写登录的方法
Sep 30 #PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 #PHP
php面试实现反射注入的详细方法
Sep 30 #PHP
laravel5表单唯一验证的实例代码
Sep 30 #PHP
Laravel模糊查询区分大小写的实例
Sep 29 #PHP
基于laravel Request的所有方法详解
Sep 29 #PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 #PHP
You might like
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
jquery JSON的解析方式
2009/07/25 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
使用angular写一个hello world
2015/01/23 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python使用xmlrpc实例讲解
2013/12/17 Python
Python出现segfault错误解决方法
2016/04/16 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
某公司部分笔试题
2013/11/05 面试题
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
女生抽烟检讨书
2014/10/05 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
详细分析PHP7与PHP5区别
2021/06/26 PHP
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python