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之字符串变相相减的代码
Mar 19 PHP
mysql 全文搜索 技巧
Apr 27 PHP
用PHP实现图象锐化代码
Jun 14 PHP
php中cookie的作用域
Mar 27 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
phpnow php探针环境检测代码
Nov 04 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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静态调用非静态方法的应用分析
2013/05/02 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
php取得字符串首字母的方法
2015/03/25 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
jquery tools 系列 scrollable学习
2009/09/06 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
Flask数据库迁移简单介绍
2017/10/24 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
PyTorch中permute的用法详解
2019/12/30 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
职代会闭幕词
2015/01/28 职场文书
退休欢送会致辞
2015/07/31 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫