Oauth2.0总结

207 阅读2分钟

写在前面:工作中与外部对接时候时候Oauth2方式进行对接,好久过去了,最近突然想起来却有些遗忘,在此记录一下,方便以后在此查看。


1、背景

对接中使用Oauth2授权模式进行获取数据,学习了一下

2、总结内容

在oauth2中有4种模式对接,有授权码模式、隐式授权模式、密码模式、客户端模式,之前项目中因为都是服务端进行交互,所以使用的授权码模式,比较稳妥,本次记录一下授权码模式的流程

3、流程图及步骤

示例图.png

假设资源服务器和授权服务器放在同一个位置上,所以可以都当做是对接合作方。

  1. 授权流程之前:首先需要将服务器的域名提供到授权服务器中,授权服务器分配给第三方服务器(可以使自己的服务部署的服务器)进行授权流程调用时候所用到的clientIdsecret
  2. 正式流程:当用户访问到需要授权的资源时候,此时请求到达第三方服务器(可以理解为自己的服务器对外提供服务,用于访问自己的服务,然后需要去授权读取其他数据)。
  3. 此时第三方服务器最主要的目的是需要获取到授权码code,用于后续通过获取token使用。所以重定向到授权服务器地址(需要授权服务器提供,配置在第三方服务器上),并且携带clientId和回调url
  4. 用户同意授权后,由授权服务器重定向到传入的回调url(其实还是第三方服务器),重定向时候会将授权服务器生成的code码带回来,此时第三方服务器(可以理解为自己的服务器)获取到授权码code
  5. 接下来第三方服务器就需要通过code请求授权服务器,进行获取token信息。发送请求,可以是get请求,也可以是其他方式,携带参数secretcode码。
  6. 当授权服务器通过校验后,就会返回token信息
  7. 服务器收到token后就可以请求资源服务器,进行获取数据,我们使用的token只有一次有效期,用一次就会失效。然后返回给用户数据

希望对你有帮助