欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

laravel 认证中的guard是什么意思

程序员文章站 2022-04-02 12:07:22
...
如题,在读文档时(中文)发现了Guard这个名词,文档中是这样定义的“Guard 定义了用户在每个请求中如何实现认证”,而后面有一个“自定义guard”章节,然后我就懵逼了,这个guard是什么意思。
是多用户认证的意思吗?不同名字的guard隔离开来,不同的认证??
http://laravelacademy.org/post/3074.html#ipt_kb_toc_3074_23

另外,provide是什么意思。。。。

回复内容:

如题,在读文档时(中文)发现了Guard这个名词,文档中是这样定义的“Guard 定义了用户在每个请求中如何实现认证”,而后面有一个“自定义guard”章节,然后我就懵逼了,这个guard是什么意思。
是多用户认证的意思吗?不同名字的guard隔离开来,不同的认证??
http://laravelacademy.org/post/3074.html#ipt_kb_toc_3074_23

另外,provide是什么意思。。。。

其实无论是Guard还是Provide,你都可以理解为。某个特定功能的插件。
Laravel是老外的东西,讲究优雅,所以把不同的东西弄成独立而又好看的东西(貌似解释的有语病)
然后还是说说官方这些东西的用法吧。。
Guard,正如这个次的中文含义一样,是守卫的意思,也就是看门的。。
他的作用是处理一个认证,来判断每个请求、调用是否是登录过,或者允许通过的,其实这个中间件也可以实现的。但是,做为一个优雅的框架,自然有优雅的归类了。。
你可以把一个密码登录,创建一个Guard,QQ登录,创建另一个Guard。任何你想要验证的登录形式,或者接口验证什么的,都可以封装成独立的Guard去调用。。

至于provide,不是认证这里的专属,他是Laravel中比较基础核心的东西。官方翻译叫做服务提供者。
他里面只有几个约定好的方法,大致是。运行这个服务的时候执行的boot,和注册这个服务的一些东西的register以及钩子什么的。主要用途就是为框架提供各种服务。
例如你创建了个格式化输出的服务,这个服务执行的时候会把输出的json里面的非字符型的值都转化为字符型。。然后这个服务注册到输出对象下面。叫做ShowMyJSON,然后你就可以在输出的时候直接用了。。

感觉你会听的一头雾水。。。Laravel刚接触确实不好理解。慢慢就好了。就和组装机器人一样。需要啥,就装个啥到某个地方。

仔细看看官网的文档吧: https://laravel.com/docs/5.2/authentication#adding-custom-guards

或者来我的小站 https://laravist.com/ ,对很多知识都有深入讲解