[PHP] 浅谈 Laravel Authentication 的 guards 与 providers

从文档的简单介绍上来讲,有一些抽象。

个人感觉,对于概念上的大多数不理解主要还是来自于 文档不是讲设计思路,而是实际操作。

查看英文文档,通常来说可以给你最准确的直觉,而本地翻译一般比较字面或者带有理解性的。

https://laravel.com/docs/6.x/authentication#introduction

认证(Authentication)组件的配置是 config/auth.php,用于区分不同认证机制的行为,所以都是可以自定义的,

这是设计思路之一。

Laravel 的认证服务由两部分组成,就是 guards 和 providers。

guards 按照文档举例的意思,给你的感觉是用于决定认证数据存储在哪里,session、file、redis ?

如果真是这样的话,就没必要称作 guards,叫 storage 不是更直接 ?

有理由判断 guards 只是一个名词而已,等价于 way,具体使用的是什么 guards,需要自己起名,可以是 fileGuards,redisGuards,databaseGuards,mixGuards,firstGuards ...

现在可以看看 providers 了,这多数是我们理解的功能性服务提供者的意思了,那么在认证服务这里就是决定 guards 的实现,决定数据如何流转的方法们。

providers 和某个 guards 挂上钩了才有意义,guards 需要 providers,providers 可以属于想要的 guards。

相信到这里,再去看实际 auth.php 的配置,这些就是设计思路下的具体案例了,你同意吗?

Link:https://www.cnblogs.com/farwish/p/11790152.html

原文地址:https://www.cnblogs.com/farwish/p/11790152.html

时间: 2024-11-23 23:52:14

[PHP] 浅谈 Laravel Authentication 的 guards 与 providers的相关文章

浅谈Laravel框架的CSRF

前文 CSRF攻击和漏洞的参考文章: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html Laravel默认是开启了CSRF功能,需要关闭此功能有两种方法: 方法一 打开文件:app\Http\Kernel.php 把这行注释掉: 'App\Http\Middleware\VerifyCsrfToken' 方法二 打开文件:app\Http\Middleware\VerifyCsrfToken.php 修改为: <?php n

[PHP] 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别

token 驱动使用 TokenGuard 用传递的值去用户表中查询 member_token 字段的值,看是否有匹配的.服务端需要在用户表中存储 access_token. passport 驱动是 laravel/passport 组件包提供的,通过 Bearer Token Validator 对传递的值进行 JWT 验证,看是否解析出的值能匹配到数据库中的 auth_access_token_id.服务端不需要存储 access_token,相对安全. 另外,laravel/passpo

从JavaWeb危险字符过滤浅谈ESAPI使用

事先声明:只是浅谈,我也之用了这个组件的一点点. 又到某重要XX时期(但愿此文给面临此需求的同仁有所帮助),某Web应用第一次面临安全加固要求,AppScan的安全测试报告还是很清爽的,内容全面,提示建议到位,而且是中午哦,当然有的中文明显狗屁不通. 之前此应用的后端架构相对比较稳固,所以出的重要问题主要出在靠近前端方向的问题,一些类似输出过滤这样的动作做的不到位,需要引入比较成熟的代码专门干这些活,翻了一下吴瀚清的同学<白帽子谈Web安全>推荐了OWASP的ESAPI,这个东西全面叫Ente

【转】 浅谈Radius协议

浅谈Radius协议 2013-12-03 16:06 5791人阅读 评论(0) 收藏 举报  分类: Radius协议分析(6)  从事Radius协议开发有段时间了,小弟不怕才疏学浅,卖弄一下,从RADIUS协议谈谈对身份认证的认识,也总结一下自己. 一.RADIUS协议原理 RADIUS(Remote Authentication Dial In User Service) 用户远程拨入认证服务,它主要针对的远程登录类型有:SLIP.PPP.telnet和rlogin等.RADIUS协议

.net中对象序列化技术浅谈

.net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数 据.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.反之,反序列化根据流重新构造对象.此外还可以将对象序列化后保存到本地,再次运行的时候可以从本地文件 中“恢复”对象到序列化之前的状态.在.net中有提供了几种序列化的方式:二进制序列化

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面有很多:1,使用缓存,最传统的一级二级缓存:2,将服务和数据库分开,使用不同的服务器,分工更加明确,效率更加高:3,分布式,提供多台服务器,利用反向代理服务器nginx进行反向代理,将请求分散开来:4,数据库的读写分离,不同的数据库,将读操作和写操作分开,并实时同步即可:5,分布式缓存,使用memc

单页应用SEO浅谈

单页应用SEO浅谈 前言 单页应用(Single Page Application)越来越受web开发者欢迎,单页应用的体验可以模拟原生应用,一次开发,多端兼容.单页应用并不是一个全新发明的技术,而是随着互联网的发展,满足用户体验的一种综合技术. SEO 一直以来,搜索引擎优化(SEO)是开发者容易忽略的部分.SEO是针对搜索(Google.百度.雅虎搜索等)在技术细节上的优化,例如语义.搜索关键词与内容相关性.收录量.搜索排名等.SEO也是同行.市场竞争常用的的营销手段.Google.百度的搜

浅谈html标签

浅谈html各常用标签用法 标题标签:<h1>-<h6>来表示,使标题字体变粗. <br />换行标记 <hr />水平分隔符 &nbsp空格符 &copy版权符 <a href>a标签超链接 href可接链接地址 <p>段落标签<blockquote>引用标签及可用做缩进 <table>表格中的<ul>无序列表<ol>有序列表<dl>自定义列表<row

浅谈二维中的树状数组与线段树

一般来说,树状数组可以实现的东西线段树均可胜任,实际应用中也是如此.但是在二维中,线段树的操作变得太过复杂,更新子矩阵时第一维的lazy标记更是麻烦到不行. 但是树状数组在某些询问中又无法胜任,如最值等不符合区间减法的询问.此时就需要根据线段树与树状数组的优缺点来选择了. 做一下基本操作的对比,如下图. 因为线段树为自上向下更新,从而可以使用lazy标记使得矩阵的更新变的高校起来,几个不足就是代码长,代码长和代码长. 对于将将矩阵内元素变为某个值,因为树状数组自下向上更新,且要满足区间加法等限制