Laravel 自带的Auth验证登录方法
时间:2022-07-27
本文章向大家介绍Laravel 自带的Auth验证登录方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在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' = AppUser::class,
],
'admins' = [
'driver' = 'eloquent',
'model' = AppAdmin::class,
],
// 'users' = [
// 'driver' = 'database',
// 'table' = 'users',
// ],
],
第二步:数据库方面
1 新建admins表,作为后台用户表
其中remember_token 用于是否记住用户
2 在app目录下新建Admin.php 文件对应,文件名称取决于配置文件中的名称
<?php
namespace App;
use IlluminateFoundationAuthUser as Authenticatable;
class Admin extends Authenticatable
{
protected $fillable = [
'username', 'password',
];
protected $hidden = [
//remember_token 字段用于记住我的功能
'password', 'remember_token',
];
public static $rules = [
'username'= 'required',
'password'= 'required'
];
}
第三步:控制器中auth的使用
Auth::guard('admin')- attempt($credentials)); 尝试登录
Auth::guard($guard)- guest();判断用户是否来宾,可用于中间件,判断用户是否登录,返回false,则已经登录,反之,跳转会登录页面
Auth::guard($guard)- user();获取已经登录的用户信息,注意在__construct()中无法获取,可以在中间件里面获取
<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateSupportFacadesAuth;
class AdminAuthMiddleware
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $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验证登录方法就是小编分享给大家的全部内容了,希望能给大家一个参考。
- 我的WCF之旅(4):WCF中的序列化[上篇]
- WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]
- 微信年度重磅“小游戏”上线,罗胖一度退出的小程序正在逆袭
- 谈谈WCF中的Data Contract(2):WCF Data Contract对Generic的支持
- Android注解学习(1)
- [WCF权限控制]ASP.NET Roles授权[上篇]
- [WCF权限控制]ASP.NET Roles授权[下篇]
- 如何解决分布式系统中的跨时区问题[实例篇]
- Visual Studio对程序集签名时一个很不好用的地方
- 一个关于解决序列化问题的编程技巧
- [WCF权限控制]从两个重要的概念谈起:Identity与Principal[上篇]
- 从数据到代码——通过代码生成机制实现强类型编程[下篇]
- 谈谈你最熟悉的System.DateTime[下篇]
- 如何解决EnterLib异常处理框架最大的局限——基于异常"类型"的异常处理策略
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC