OAuth 2.0 实战课
王新栋
京东资深架构师
16397 人已学习
新⼈⾸单¥29
登录后,你可以任选2讲全文学习
课程目录
已完结/共 17 讲
开篇词 (1讲)
OAuth 2.0 实战课
15
15
1.0x
00:00/00:00
登录|注册

结束语 | 把学习当成一种习惯

你好,我是王新栋。
当你来到这节课的时候,我们的课程已经接近尾声,相信你在课程的学习中都有所收获。在最后的这节课,我想跟你谈一谈如何学习 OAuth 2.0 这门技术。
在谈起如何学习这个话题的时候,我很愿意跟你分享我的一些经历和经验。我个人认为,学习从来都不是一件容易的事情,夸张一点讲有点“反人性”。你想啊,谁不愿意,在工作忙碌了一天后,晚上回家多陪陪家人;又有谁不愿意,到了周末去找几个朋友打打篮球或者陪女朋友看看电影呢。但是,学习一定要养成一种习惯。我在《程序员思维修炼》这本书中读到这么一段话,分享给你:
知识投资也是一样。你需要定期投资最低限度的时间量。养成一种习惯,如果需要的话。躲到你的家庭办公室里去或者走进有无线网络的咖啡厅。并非每期学习都同样富有成效,但是只要定期安排学习,长期来看一定会成功。如果你一直在等待空闲时间或者等待灵感的突现,那么它永远都不会发生。
在具备了上面所述的“定力”以后,我再和你谈一谈具体的学习方法。
我按照层次由低到高把学习分为基础学习、分析学习和主题学习
基础学习,就是从知识点最基本的理论开始学习;
分析学习,就是对知识的结构脉络做梳理,并带着问题去学习;
主题学习,就是对同一个知识点,分别找到不同的资料来学习。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

学习OAuth 2.0技术需要养成一种习惯,文章提出了基础学习、分析学习和主题学习三个层次的学习方法。在基础学习阶段,需要了解OAuth 2.0的基本角色和授权许可类型;在分析学习中,要梳理知识结构并解决相关问题;主题学习则要求深入理解特定内容。此外,文章还强调了“输出倒逼输入”对学习的重要性,建议读者通过留言、分享和写作来加强学习效果。作者鼓励读者积极向外传达自己的想法,以获得更多的惊喜。整体而言,文章强调了学习的重要性和方法,为读者提供了系统的学习指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《OAuth 2.0 实战课》
新⼈⾸单¥29
立即购买
登录 后留言

全部留言(30)

  • 最新
  • 精选
  • 而立斋
    马上买了一本《程序员思维修炼》,哈哈

    作者回复: 哈哈 一起变得更加优秀

    2020-08-04
    2
    7
  • Geek_883762
    当老师说再见的时候,我哭了。

    作者回复: 我被感动到了,我会尽最大努力回复好每一位同学的留言。

    2020-08-04
    6
  • 在路上
    感谢老师的精彩讲解,现在每次授权登录时,都想到老师讲些的后台流程。

    作者回复: 多谢 ^_^

    2020-08-04
    2
    4
  • zeroki
    “鉴权”是建议在开放平台的网关做呢,还是授权服务做呢?

    作者回复: 放在网关来做,读取授权服务的接口或者是直接操作授权服务的数据存储。

    2020-08-07
    2
  • inrtyx
    难说再见,谢谢老师

    作者回复: 我会一直在的 ^_^

    2020-08-04
    2
  • 哈德韦
    老师好,微信PC扫码登录就是一个标准的OAuth 2.0流程,用户扫码后,手机微信弹出确认框。用户确认后,微信重定向到开发者回调网址,带上code,之后开发者网站使用code换取accessToken等。但是也有网站(比如石墨文档),PC扫码登录实际上利用了微信的带参二维码,用户扫码后直接跳转到了其公众号,而微信服务器直接将用户信息发送给石墨服务器,石墨利用这些信息直接将用户登录。请问这种利用带参二维码形式的PC扫码登录,其安全性会比标准的OAuth 2.0差吗?由于微信服务器发送用户信息给开服务器时是加密的,是否可以保证其安全性呢?

    作者回复: 我试了下石墨文档,现在也是采用了扫码登陆了,不过你说的这个关注二维码之后再登录,我印象中CSDN这样做过。 这个我们可以开放性讨论下,我看了下微信官方的文档,微信的带参二维码应该属于渠道码,一般用作对引流数据的统计。原理应该就是使用一个EvenkKey,当有人扫描这个二维码后,微信会推送给开发者这个EventKey,然后开发者在可以对此次事件做一些响应动作。 我个人认为如果拿这种方式用作登录的话,其背后还是OAuth机制,上面说的那种关注公众号才能登录,是建立在次基础上的。

    2020-08-16
  • Tim Zhang
    老师 不是很理解你回答的刷新逻辑在授权服务。 前提 我的oauth服务是我自己写的,并非第三方服务。 我一个请求首先访问了网关,网关进行了鉴权,然后请求打到了后面api,但是actoken过期了,需要拿着refreshtoken去刷新actoken,难道不是受保护资源自己去调用我的oauth服务拿actoken么?这个逻辑如果每个受保护资源自己做,那是不是每个受保护资源都需要引入这个sdk呢?

    作者回复: 刷新逻辑在授权服务,意思是授权服务来接收刷新令牌负责生成新的访问令牌。 既然有了网关这一层,网关在进行鉴权的时候只会去验证令牌,如果令牌过期肯定会拒绝访问,也不会把token继续往下传的。

    2020-08-07
  • AgCl
    老师,看到留言,我有点疑惑,我们这边正想用oauth2的实现,如果网关做了验证和粗粒度的授权 但是资源服务器可能有更细粒度的权限管理,如果用的是spring security 的框架,资源服务器获取到用户id, 然后我们自己初始化好securitycontextHolder的内容;这样的话是不是我们直接网关就做转发,资源服务器自己去做token的验证以及权限验证,谢谢老师

    作者回复: 如果是网关下面只有一个资源服务系统,这里的网关可能就是为了做非业务相关的比如限流、黑白名单等等,这种情况下可以再资源服务系统来做。但是如果网关下面有很多个资源服务系统,建议还是”切一下“在网关来做。 更细粒度的权限如果也都是跟access_token相关的,在网关去做验证肯定也没有问题,除非是那些其它维度跟令牌无关的权限控制,那么可以下放到资源服务系统来。

    2020-08-07
  • Tim Zhang
    请问下假设2个服务 a和b,首先调用a的/a,然后a会调用b的/b,在网关层只能针对/a进行权限校验,/a执行完毕后调用/b,这个时候已经不会访问到网关了,请问权限校验是否只能在/b的应用上通过横切逻辑类似filter进行校验过滤

    作者回复: a和b相当于两个微服务了吧,a是用户请求流程上首先被访问到的一个服务,在这之上的权限校验已经被网关做了。当a去访问b的时候,一般情况下没有再涉及到用户的权限校验了。越往下越是基础的服务。但这里有可能会存在系统之间的权限访问,也就是说b是否允许a来调用,一般微服务之间都是需要做这样的系统校验的。 如果

    2020-08-06
  • Tim Zhang
    老师,还有疑问,求解答 1、scope与api的映射表,缓存在网关,网关进行鉴权。那么如果粒度很细,一个api(url路径+ http方法)就需要对应一个scope,那么可能有成千上万个api,都需要在表里面定义么 2、网关已经校验过了scope,并且通过,请求调用到了受保护资源的某个api,还需要针对于这个api进行比如 @Precheck(hasRole('admin')) 或者 @Precheck(hasAuthority('xxx')) 的鉴权么,因为据我了解网关可能针对于粗粒度的api 比如/A/** 实际上访问的/A/aa还有更细粒度的比如rbac中的权限鉴定,所以其实不仅网关一层对于scope进行鉴权,访问到某个特定api还需要通过rbac进行鉴权,是这样么 3、如果刷新token,重定向等针对于oauth2的逻辑实现在网关,后续api假设有2个 a和b, 网关首先调用了a,a计算完成还需要调用b,这个时候假设accessToken过期了,但是刷新token逻辑在网关,a调用b不经过网关了,那么这些刷新逻辑是否还需要在b的filter切面层进行拦截处理

    作者回复: 1、这个数量参照要按照accesstoken的角度来讲,每一个accesstoken对应一个scope,如果按照上面所述的,就是一对一对多的关系,这些数据都存储在redis中。 2、在网关做了OAuth的鉴权也包括scope的校验,受保护资源不需要在做类似的验证,但是越权访问,也就是之前我们讲到的数据归属判断,是一定要在受保护资源内部逻辑中去做的。 3、刷新token的逻辑在授权服务系统中实现,不在网关层。

    2020-08-06
收起评论
显示
设置
留言
30
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部