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&amp;&amp;mysql)一
Oct 09 PHP
用文本文件制作留言板提示(下)
Oct 09 PHP
我用php+mysql写的留言本
Oct 09 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
使用URL传输SESSION信息
Jul 14 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 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
PHP的变量类型和作用域详解
2014/03/12 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Sanic框架流式传输操作示例
2018/07/18 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python跳出多重循环的方法示例
2019/07/03 Python
Python代码太长换行的实现
2019/07/05 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
python为什么要安装到c盘
2020/07/20 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
Java软件工程师综合面试题笔试题
2013/09/08 面试题
毕业生动漫设计求职信
2013/10/11 职场文书
应聘教师自荐信
2013/10/12 职场文书
客服专员岗位职责范本
2013/11/29 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
请假条的格式
2014/04/11 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
班级体育活动总结
2014/07/05 职场文书
一份文言文检讨书
2014/09/13 职场文书
安全生产工作汇报
2014/10/28 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
MySQL数据迁移相关总结
2021/04/29 MySQL
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python