针对上面的获取照片,我们结合下图进行详细展开
B服务[存储照片
B服务认证服务
A服务认证服务
A服务[打印照片]
B服务资源服务
A服务客户端
授权码模式
流程
说明:【A服务客户端】需要用到【B服务资源服务】中的资源
●第一步:【A服务客户端】将用户自动导航到【B服务认证服务】,这一步用户需要提供一个回调地址,以备 【B服务认证服务】返回授权码使用。
●第二步:用户点击授权按钮表示让【A服务客户端】使用【B服务资源服务】,这一步需要用户登录B服务,也就是说用户要事先具有B服务的使用权限。
●第三步:【B服务认证服务】生成授权码,授权码将通过第一步提供的回调地址,返回给【A服务客户端】。 注意这个授权码并非通行【B服务资源服务】的通行凭证。
●第四步:【A服务认证服务】携带上一步得到的授权码向【B服务认证服务】发送请求,获取通行凭证token。
●第五步:【B服务认证服务】给【A服务认证服务】返回令牌token和更新令牌refresh token。
场景
授权码模式是OAuth2中最安全最完善的一种模式,应用场景最广泛,可以实现服务之间的调用,常见的微信,QQ等第三方登录也可采用这种方式实现。