关于laravel自带的认证和授权

之前没有用过laravel,已经自学一阵了,发现laravel有些操作封装的层次太高,很多东西拿来即用,感觉这样就会造成定制化的困难,比如认证和授权,现在基本没有用邮箱之类的验证方式了,laravel默认的还是邮箱,像授权吧,我就使用没有搞明白为什么要通过Gate去实现,直接根据数据库去判断不更清楚吗,我觉得用户认证和授权这一块可以完全去掉,让用户自己去实现,用户认证就根据个session,授权就去查数据库,RABC去实现,这不是很简单吗,简单的事情为什么要搞复杂

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

认证模块使用邮箱只是laravel脚手架默认的一个行为,你完全可以在不脱离laravel定义的概念的情况下,自定义字段、认证逻辑、数据存储、会话保持。授权模块抽象成gate和policy也是希望开发者可以将这块的逻辑独立出来,不与业务逻辑过分耦合。 另外一个很重要的思想是,laravel基本只定义了概念和框架,而不定义具体的实现。因此laravel区别于TP的一点是:laravel可以分发解决方案,比如laravel-jwt就是一个很典型的分发解决方案的例子——理想情况下,你可以从一个解决方案切换到另一个解决方案,只需要简单的配置调整就可以实现。

3年前 评论
讨论数量: 7

自带的是比较通用的解决方案,你完全可以不使用自带的这些东西。自己去实现。

关于邮箱验证,国外可能还是邮箱验证比较常用吧(个人猜测)。

3年前 评论
自由与温暖是遥不可及的梦想 3年前

完全可以不用这些自己去实现,不过我就喜欢自带的

3年前 评论
云客网络工作室

其实自带的也是session验证 查询数据库 关于认证字段 你可以不用email 可以username或者mobile都可以。也可以完全不使用laravel自带的认证逻辑,自己写个认证逻辑并使用中间件进行验证。完全可以把laravel当成简单的mvc框架来使用。

3年前 评论
aphpa (楼主) 3年前
云客网络工作室 (作者) 3年前

为了方便兼容各种场景,因为你是单机部署所以用Session,但是集群或者访问量大的情况下大家会使用Redis,前后端分离的时候会使用token。这么设计是为了灵活性考虑。其次,如果你的程序做了单元测试或者自动化测试,那么这样分离的时候会给测试带来很大的便利。
话说回来,如果你觉得复杂其实可以自己按照自己的想法写,也是没有问题的,只不过后续你会发现有些时候不是很灵活,有一定限制。更具项目做个取舍吧。深入了解以后你会发现也不会很麻烦。

3年前 评论

认证模块使用邮箱只是laravel脚手架默认的一个行为,你完全可以在不脱离laravel定义的概念的情况下,自定义字段、认证逻辑、数据存储、会话保持。授权模块抽象成gate和policy也是希望开发者可以将这块的逻辑独立出来,不与业务逻辑过分耦合。 另外一个很重要的思想是,laravel基本只定义了概念和框架,而不定义具体的实现。因此laravel区别于TP的一点是:laravel可以分发解决方案,比如laravel-jwt就是一个很典型的分发解决方案的例子——理想情况下,你可以从一个解决方案切换到另一个解决方案,只需要简单的配置调整就可以实现。

3年前 评论
颠倒的玉石

策略是个好东西

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!