# OAuth 2.0实战课 ## 你将获得 * 4 大授权许可类型原理详解 * 安全快速接入 OAuth 2.0 的方法 * 实现一个 OIDC 用户身份认证协议 * 基于 OAuth 2.0/JWT 的微服务架构参考 ## 讲师介绍 王新栋,京东资深架构师,拥有十多年的互联网研发、架构经验,在开放网关和开放授权上有丰富的实战经历。 作为首席架构师,他和团队一起构建的商家开放平台架构,成功经历了 6 次“618” 和“11.11”大促流量洪峰和复杂环境的考验。其中,OAuth 2.0 授权应用架构,还成功支持了喜马拉雅、酷狗音乐、腾讯视频和京东 PLUS 的联合会员业务。 ## 课程介绍 近几年,越来越多的Web网站、移动App,都在支持使用微信、微博等账号登录的方案,来避免繁琐的注册流程。比如说,你第一次使用极客时间,就可以选择使用微信账号来登录。 这其实就是,你(用户)在**授权**极客时间(第三方软件)**代表**你使用在微信平台(授权服务)的个人信息(受保护资源)来登录。这背后用到的知识就是OAuth 2.0。 从2011年发布OAuth 2.0草案到现在,OAuth 2.0已经不再是一门新技术了,网上也已经有很多关于OAuth的资料了。但是,这并不意味着OAuth 2.0的学习很简单,只要找几篇文章看看就“万事大吉”了。 你在学习、实践OAuth 2.0的过程中,是不是也被下面这些问题困扰着: * 在授权码许可类型中,为什么一定要有授权码?为什么要有两次重定向? * 在Web应用中到底应该怎么使用授权码流程,移动App中还能使用授权码流程吗? * 在开发应用时,如何解决授权码被拦截的安全问题? 为此,我们特意邀请了王新栋,他会结合自己在开放平台上的工作经验以及对OAuth 2.0的理解,一次性地给你说透授权这件事儿,力求给你带来最贴近本质的OAuth 2.0知识,让你能够用对、用好这个协议。 ### 学习这门课程需要什么基础? 只要你有一定的工作经验,能够理解基本的Web通信协议,就能理解这门课程的内容。 这门课程在[GitHub](https://github.com/xindongbook/oauth2-code)上提供了一套用Java语言来实现的简单、可落地的代码,代码中除了基本的Servlet技术外,没有引入任何其它的第三方内容,所以你只要能够理解Request和Response,就没问题。 ### 课程模块设计 本课程分为两大模块。 **第一部分是基础篇,是你必须要掌握的OAuth 2.0的基础知识:**用一个小明使用第三方“小兔打单软件”来打印自己在京东店铺的订单数据的例子,来细致讲解授权码许可类型的流程,以及资源拥有者凭据许可、隐式许可、客户端凭据许可的原理,以及如何选择适合自己实际场景的授权类型。 学完这个模块的内容以后,你就可以从容地把OAuth 2.0用到实际的工作场景了。 **第二部分进阶篇的内容,侧重讲解OAuth 2.0 “更高级” 的一些用法**,让你知道如何更安全地用、扩展地用OAuth 2.0。 这部分内容会包括如何在移动App中使用OAuth 2.0,因使用不当而导致的OAuth 2.0安全漏洞有哪些,以及如何利用OAuth 2.0实现一个OpenID Connect用户身份认证协议。此外,我们还邀请了微服务技术领域的专家杨波老师,分享了一个基于OAuth 2.0/JWT的微服务参考架构案例。 ## 课程目录 ![](https://static001.geekbang.org/resource/image/11/93/113e738f7aa99e03dc95f4556c2f5c93.jpg) ## 特别放送 #### 免费领取福利 [![](https://static001.geekbang.org/resource/image/3b/f4/3bdf677ae6490acb5f2899985e9337f4.jpg?wh=1029x315)](https://time.geekbang.org/article/455497) #### 限时活动推荐 [![](https://static001.geekbang.org/resource/image/67/a0/6720f5d50b4b38abbf867facdef728a0.png?wh=1035x360)](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?dc_ps=2913145716543073286.200001) ## 订阅须知 1. 订阅成功后,推荐通过“极客时间”App端、Web端学习。 2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。 3. 订阅后分享海报,每邀一位好友订阅有现金返现。 4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。 5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。 6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1),订阅课程享受原价5折优惠。 7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。