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 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
PHP 多维数组排序实现代码
Aug 05 PHP
php获取post中的json数据的实现方法
Jun 08 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
Jul 12 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
Laravel 错误提示本地化的实现
Oct 22 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
英语老师推荐信
2014/02/26 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
求职信范文大全
2014/05/26 职场文书
新闻学专业求职信
2014/07/28 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
工作调动申请报告
2015/05/18 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android