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作的文本留言本的例子(六)
Oct 09 PHP
一些常用的php函数
Dec 06 PHP
PHP插入排序实现代码
Apr 04 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
php中jpgraph类库的使用介绍
Aug 08 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
php pdo oracle中文乱码的快速解决方法
May 16 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 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动态生成VRML网页
2006/10/09 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
php生出随机字符串
2017/07/06 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python中函数参数调用方式分析
2018/08/09 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Python登录系统界面实现详解
2019/06/25 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
如何基于Python实现数字类型转换
2020/02/07 Python
Python列表推导式实现代码实例
2020/09/09 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
南京某公司笔试题
2013/01/27 面试题
三好学生事迹材料
2014/12/24 职场文书
大班下学期幼儿评语
2014/12/30 职场文书