笔者在《华为帐号服务学习笔记(二):OAuth2.0协议详解》中已经给大家介绍了Authorization Code模式是需要有后台服务器才能使用的,并且在《华为帐号服务学习笔记(三):10分钟完成Authorization Code模式客户端Demo开发》文章中已经给大家介绍了一种高效完成客户端Demo开发的方式,本篇文章将介绍code模式服务端需要的开发步骤及注意事项,在介绍之前,笔者再带大家先回顾下Code模式整体的交互流程是怎样的,华为帐号服务在使用code模式时流程有哪些差异。
华为帐号服务Authorization Code模式业务流程
步骤详细介绍:
- 用户选择帐号登录方式登录应用客户端。
- 应用客户端向帐号SDK发送请求,获取Authorization Code。
- 帐号SDK向HMS Core(APK)发送请求,获取Authorization Code。
- HMS Core(APK)向帐号服务器发送请求,获取Authorization Code。
- HMS Core(APK)展示帐号服务器的用户登录授权界面,界面上会根据登录请求中携带的授权域(scopes)信息, 显式告知用户需要授权的内容。
- 用户允许授权。
- 帐号服务器返回Authorization Code信息给HMS Core(APK)。
- HMS Core(APK)返回Authorization Code信息给帐号SDK。
- 帐号SDK返回Authorization Code信息给应用客户端。
- 应用客户端将获取到的Authorization Code信息发给应用服务器。
- 应用服务器向帐号服务器发送请求,获取Access Token、Refresh Token、ID Token信息。
- 帐号服务器返回Access Token、Refresh Token、ID Token信息。
从流程中可以看到,里面涉及的华为帐号SDK和HMS Core APK,当前HMS Core apk在所有华为新发布的手机中已经预装了,如果没有装的话,在登录华为帐号的时候也会提示用户安装,这是在华为手机等移动端上的流程,后续在非华为手机、及其他移动端设备上华为也会有相对应的出端方案,这部分让我们拭目以待。
Authorization Code模式服务端开发步骤与接口示例
1、接收来自客户端发送的code
该部分代码涉及到客户端和服务端的交互方式,需要根据自身设计开发,华为没有提供示例代码。
2、用code换Access Token
应用服务器调用华为