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 相关文章推荐
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
php数字转汉字代码(算法)
Oct 08 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
thinkPHP模板引擎用法示例
Dec 08 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
Laravel事件监听器用法实例分析
Mar 12 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运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php字符集转换
2017/01/23 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
php中数组最简单的使用方法
2020/12/27 PHP
javascript 常用方法总结
2009/06/03 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
自荐信范文
2013/12/10 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
教师专业自荐信
2014/05/31 职场文书
家长学校培训材料
2014/08/20 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
民事起诉书范本
2015/05/19 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android