从文档的简单介绍上来说,有一些抽象。php
我的感受,对于概念上的大多数不理解主要仍是来自于 文档不是讲设计思路,而是实际操做。html
查看英文文档,一般来讲能够给你最准确的直觉,而本地翻译通常比较字面或者带有理解性的。laravel
https://laravel.com/docs/6.x/authentication#introductionredis
认证(Authentication)组件的配置是 config/auth.php,用于区分不一样认证机制的行为,因此都是能够自定义的,api
这是设计思路之一。session
Laravel 的认证服务由两部分组成,就是 guards 和 providers。ide
guards 按照文档举例的意思,给你的感受是用于决定认证数据存储在哪里,session、file、redis ?翻译
若是真是这样的话,就不必称做 guards,叫 storage 不是更直接 ?设计
guards 只是一个名词而已,等价于方式方法 way,具体使用的是什么 guards,须要本身起名,均可以是 a、b、c。htm
和 guards 强挂钩的是 driver,这才是实际内涵,这个 driver 好比 fileGuards,redisGuards,databaseGuards,mixGuards,firstGuards ...
如今能够看看 providers 了,这多数是咱们理解的功能性服务提供者的意思了,那么在认证服务这里就是决定 guards 的实现,决定数据如何流转的方法们。
providers 和某个 guards 挂上钩了才有意义,guards 须要 providers,providers 能够属于任何的 guards。
相信到这里,再去看实际 auth.php 的配置,这些就是设计思路下的具体案例了,你赞成吗?