许式伟的架构课
许式伟
七牛云 CEO
84945 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 89 讲
许式伟的架构课
15
15
1.0x
00:00/00:00
登录|注册

44 | 实战(四):“画图”程序后端实战

使用开源项目 dex
基于 OAuth 2.0 改造 QPaint 的帐号与授权机制
支持帐号与授权服务
引入身份令牌(ID Token)概念
dex 对外统一提供标准的服务
Pluggable Connector
dex 在联邦 OpenID 的支持
通过 OAuth 2.0 协议对客户端提供授权服务
基于各类主流的 OpenID 提供帐号系统
考虑基于微信、支付宝等 OpenID 实现用户的快速登录
遵循 OAuth 2.0 的授权协议规范
基于Cookie的会话(Session)
基于用户名+密码的登录授权
OAuth 2.0 背后的逻辑
结语
使用 dex
提供 OpenID + OAuth 2.0 服务
联邦 OpenID
dex 项目
提供 Open API
QPaint 引入帐号与授权体系
介绍帐号与授权相关的基础体系
实战(四):“画图”程序后端实战

该思维导图由 AI 生成,仅供参考

你好,我是七牛云许式伟。
上一讲我们介绍了帐号与授权相关的基础体系,并重点介绍 OAuth 2.0 背后的逻辑。今天我们开始考虑如何让 QPaint 引入帐号与授权体系。
最常规的做法,当然是自己建立一个帐号数据库,做基于用户名 + 密码的登录授权并转为基于 Cookie 的会话(Session)。示例如下:
但我们考虑提供 Open API 的话,就需要考虑遵循 OAuth 2.0 的授权协议规范,以便第三方应用可以快速接入,而不是搞半天去研究我们自己发明的授权是怎么回事。
除此之外,我们也可以考虑基于微信、支付宝等 OpenID 来实现用户的快速登录,而不是让用户在注册环节折腾半天。
所以,比较理想的方式是我们基于 OpenID Connect 协议来提供帐号系统,基于 OAuth 2.0 协议来实现 Open API 体系。
这个选择与业务无关。所以很自然地,我们决定评估一下,看看是否有开源项目和我们想得一样。
最后,我们发现 CoreOS 团队搞了一个叫 dex 的项目,如下:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何基于OAuth 2.0来改造QPaint的帐号与授权机制。作者首先介绍了建立帐号数据库并实现基于用户名+密码的登录授权的常规做法,然后提出了考虑提供Open API时需要遵循OAuth 2.0的授权协议规范的必要性。接着,作者介绍了基于微信、支付宝等OpenID来实现用户快速登录的方式,并提到了CoreOS团队开发的dex项目,该项目基于各类主流的OpenID来提供帐号系统,并通过OAuth 2.0协议对客户端提供授权服务。文章还介绍了dex在联邦OpenID和提供OpenID + OAuth 2.0服务方面的支持,并提供了相关的链接供读者参考。最后,作者指出了使用dex服务后,QPaint业务可以支持帐号与授权,并提供了相关的SDK和对接dex的详细说明文档。总的来说,文章强调了基于OAuth 2.0和OpenID来改造帐号与授权机制的重要性,并介绍了相关的开源项目和SDK,为读者提供了实践的参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《许式伟的架构课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • sswrock
    按DDD的观点,认证模块属于通用域,业绩有现成的应该直接拿来用(因为是通用域,业界正常都有极其成熟的实现),不必重复写轮子。 时间和精力应该花在产品本身的核心域上,对应这个实战:也就是Drawing的业务表达

    作者回复: 是的

    2019-12-09
    4
  • 哈德韦
    很感谢通过老师的课程了解到 dex。另外请问老师怎么评价 keycloak (https://github.com/keycloak/keycloak)?因为正好在选择单点登录的方案,不知道该选哪个?

    作者回复: 我需要先研究一下

    2020-07-15
    2
  • 泡泡龙
    许老师,github上 v44 和 v42 代码是一样的

    作者回复: 多谢指出

    2020-03-05
    2
  • ezra.xu
    请问老师,怎么把微信,支付宝或者自定义的openid集成到dex?

    作者回复: 这个问题,我倾向于把它作为这个课程的作业。你可以试试自己做做看。

    2019-09-25
    1
  • pedro
    立个 flag,完整的实现一下老师的项目
    2020-04-03
    3
  • Aaron Cheung
    很好的介绍 打卡44
    2019-09-24
    2
  • 不温暖啊不纯良
    今天老师介绍了dex认证框架支持的鞋子,这章重点概念梳理。 openid协议。 复制用户到其他被授权的app,让其可以使用我方数据库维护的用户。
    2021-04-30
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部