從文檔的簡單介紹上來說,有一些抽象。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 的配置,這些就是設計思路下的具體案例了,你贊成嗎?