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分页显示制作详细讲解
Dec 05 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
php生成验证码函数
Oct 20 PHP
Yii开启片段缓存的方法
Mar 28 PHP
Yii全局函数用法示例
Jan 22 PHP
利用PHP访问带有密码的Redis方法示例
Feb 09 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
PHP 出现 http500 错误的解决方法
Mar 09 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
php session处理的定制
2009/03/16 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python获取当前路径实现代码
2017/05/08 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
python 表格打印代码实例解析
2019/10/12 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
大学生预备党员自我评价分享
2013/11/16 职场文书
大学生入党思想汇报
2014/01/01 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
休假证明书
2015/06/24 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
python实现简单的名片管理系统
2021/04/26 Python
利用JavaScript写一个简单计算器
2021/11/27 Javascript