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

43 | 实战(三):“画图”程序后端实战

更新令牌(Refresh Token)
访问令牌(Access Token)
客户端模式(Client Credentials)
用户名+密码模式(Resource Owner Password Credentials)
简化模式(Implicit)
授权码模式(Authorization Code)
客户端通过 Token 向资源服务发起资源访问请求
客户端向授权服务发起授权请求
客户端向终端用户申请访问权限
客户端向服务提供商提出接入申请
第三方应用
终端用户
服务提供商
Token 授权的入口
登录(login)
用户名+密码
基于 AK/SK
基于 Token
自动分配的唯一 ID
用户自定义的网络 ID
手机号
电子邮件
OAuth 2.0 的授权模式
OAuth 2.0 的基本场景
OAuth 2.0 的核心场景
情况会用 “用户名+密码” 授权
常见的授权机制
帐号和授权并不是对应的关系
帐号对服务的访问方式
互联网帐号的表征方式
表征用户身份的实体
OAuth 2.0
授权(Authorization)
帐号(Account)
如何基于 OAuth 完成 QPaint 的帐号与授权机制
帐号(Account)与认证(Authorization)
改造成产品级的服务端程序
下一讲
实战(三):“画图”程序后端实战
文章

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

你好,我是七牛云许式伟。
在上一章,我们实现了一个 mock 版本的服务端,代码如下:
我们这一章实战的目标,是要把它改造成一个产品级的服务端程序。
前面两讲,我们一讲谈了 RESTful API 层,一讲谈了底层是业务逻辑的实现层。今天,我们要谈的是帐号(Account)与认证(Authorization)。
我们之前实现的 mock 版本服务端是匿名可访问的,不需要授权。在上一讲,我们开始引入了多租户,但为了简化,用的是一种 mock 的认证方式。
接下来我们就要动真格了。
但在此之前,我们仍然要先理解一下帐号和认证这两个概念。虽然这是两个大家非常耳熟能详的东西。

帐号(Account)

帐号,简单说就是某种表征用户身份的实体,它代表了一个“用户”。虽然一个物理的自然人用户可能会在同一个网站开多个帐号,但从业务角度,我们往往把这些帐号看作不同的用户。
互联网帐号的表征方式有很多,比较常见的有:
电子邮件;
手机号;
用户自定义的网络 ID;
自动分配的唯一 ID。
前三者大家容易理解。对于自动分配的 UUID,其实最典型的是银行。你的银行帐号从来都不是你自己定义的,而是预先分配好的一个卡号。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了如何将一个 mock 版本的服务端改造成一个产品级的服务端程序,重点讨论了帐号(Account)与认证(Authorization)的概念。作者详细介绍了互联网帐号的表征方式以及常见的授权机制,包括基于 Token、基于 AK/SK 和基于用户名+密码的授权方式。特别关注了 OAuth 2.0 的核心场景,涉及到服务提供商、终端用户和第三方应用之间的交互流程。文章还介绍了 OAuth 2.0 的授权模式,包括授权码模式、简化模式、用户名+密码模式等。通过对帐号和认证的讨论,帮助读者更好地理解了服务端程序的设计和实现。下一讲将继续讨论如何基于 OAuth 来完成 QPaint 的帐号与授权机制。

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

全部留言(10)

  • 最新
  • 精选
  • humor
    授权码模式中的第C步已经将用户导向到了重定向url,为什么第D步还要附上重定向url呢?第D步附上的的这个重定向url的作用是什么呢?

    作者回复: 用来验证

    2019-09-20
    4
  • Geek_88604f
    终端用户通过浏览器访问云服务提供商提供的服务时,浏览器就相当于客户端吧?浏览器需要向服务提供商提出接入申请吗? 当终端用户打开登录页面时会要求输入用户名和密码,这个过程是不是可以认为客户端(Client)向终端用户申请访问权限。

    作者回复: 1、浏览器是客户端,它也需要接入申请。 2、是的。

    2019-10-03
    1
  • CoderLim
    授权码不是认证后颁发的 code 吗,为什么还需要再认证再颁发新 code (token )

    作者回复: code和token是完全不同的东西

    2019-09-24
    1
  • Aaron Cheung
    早起打卡 43 对前后端分离式的企业式类似ldap认证一直有点困惑 看看许老师的后续课程💪
    2019-09-20
    2
    6
  • Geek_9d0e04
    有一个问题,resource owner收到client请求中的,access token,是不是需要去authorization server做下access token的校验?不校验的话,如何判断access token是有效的呢?这种校验,每次client请求都需要做吗??
    2020-06-10
    1
    1
  • 沉睡的木木夕
    验证这一块讲的过于简单了。 从架构上来讲,授权验证,搭建 sts,这个概念很重要的,虽然很容易查资料得知具体细节 不过我认为还是有必要在详细讲下
    2020-03-05
    1
  • ifelse
    学习打卡
    2023-09-13归属地:浙江
  • 不温暖啊不纯良
    在授权码模式下,用户代理会发送三个请求,接收两个请求。 发送请求给终端用户请求授权。 发送重定向请求到认证服务器。 发送用户授权信息到认证服务器。 终端用户返回授权。 认证服务器返回认证后的重定向请求。 然后用户代理拿到这个重定向请求,返回给客户端,然后客户端使用这个重定向请求资源,在这个请求里,同样需要经过认证服务器,认证成功后给用户返回资源。
    2021-04-29
  • 💢 星星💢
    老师,还是不理解,为啥要先颁发一个code,在颁发token,直接颁发token不是也可以么,可能是为了安全,但是具体安全在哪,我还是没理解。。
    2019-10-30
    1
  • Subfire
    这里的授权是包含了鉴权么?
    2019-10-23
    1
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部