什么是开放平台接口

在一些大型互联网公司,随着公司的业务发展逐渐庞大,需要和外部合伙伙伴进行合作,需要将公司的接口开放给外部其他合伙伙伴进行调用。

比如腾讯的 QQ互联网微信开放平台蚂蚁金服开放平台 、钉钉开放平台微博开放平台,比如实现功能QQ联合登陆、微信扫码登陆比如腾讯的QQ互联网、微信开放平台、蚂蚁金服开放平台 、微博开放平台,比如实现功能QQ联合登陆、微信扫码登陆。

还有就是在大型集团公司中,分为总公司,和旗下多个分公司,总公司与分公司相互通讯也可以采用开放平台形式对接口进行授权。

什么是Oauth2.0

OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。

QQ登录OAuth2.0:对于用户相关的OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。
QQ登录OAuth2.0采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于之前的 OAuth1.0协议,其认证流程更简单和安全。

在开放平台接口设计中,遵循Oauth2.0认证授权协议 JWT。

QQ授权用到的字段属性介绍:

appid:应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。商户号   永久不能进行修改的,就像我们的身份证号一样。

appkey:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值。商户密钥 这个可以进行修改,但是应该注意修改过之后进行同步的问题。

授权码Code:获取accessToken。

accessToken:调用接口权限访问令牌。

回调地址:授权成功之后,重定向的地址。

openId:开放平台生产唯一的用户Id。

Oauth2授权原理

OAuth认证和授权的过程如下:

1、用户访问第三方网站网站,想对用户存放在服务商的某些资源进行操作。

2、第三方网站向服务商请求一个临时令牌。

3、服务商验证第三方网站的身份后,授予一个临时令牌。

4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。

5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资源。

6、授权成功后,服务商将用户导向第三方网站的返回地址。

7、第三方网站根据临时令牌从服务商那里获取访问令牌。

8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。

9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。

QQ联合登录的流程

1、 生成授权Code链接,获取授权码

2、 根据用户获取的授权码,获取对应的AccessToken

3、 根据AccessToken获取对应的openId

4、 根据openId获取对应的用户信息

SpringCloud Oauth2

在Spring Cloud需要使用oauth2来实现多个微服务的统一认证授权,通过向OAUTH服务发送某个类型的grant type进行集中认证和授权,从而获得access_token,而这个token是受其他微服务信任的,我们在后续的访问可以通过access_token来进行,从而实现了微服务的统一认证授权。

客户端根据约定的ClientID、ClientSecret、Scope来从Access Token URL地址获取AccessToken,并经过AuthURL认证,用得到的AccessToken来访问其他资源接口。

Spring Cloud oauth2 需要依赖Spring security

Oauth2角色划分

1、Resource Server:被授权访问的资源

2、Authotization Server:OAuth认证授权中心

3、Resource Owner: 用户

4、Client:使用API的客户端(如Android 、IOS、web app)

OAuth2四种授权方式

1、授权码模式(authorization code)用在客户端与服务端应用之间授权,做授权使用。

2、简化模式(implicit)用在移动app或者web app(这些app是在用户的设备上的,如 在手机上调起微信来进行认证授权)

3、密码模式(resource owner password credentials)应用直接都是受信任的(都是由一家公司开发的),使用密码进行验证登录的。

4、客户端模式(client credentials)用在应用API访问

项目整合授权认认证中心程图

QQ开放平台地址:http://wiki.connect.qq.com/

源码地址:https://gitee.com/MingTian-NiHao/springboot-oauht2.0

转载于:https://www.cnblogs.com/ming-blogs/p/11025797.html

微服务开放平台接口设计相关推荐

  1. Spring Cloud 微服务开放平台接口

    Spring Cloud 微服务开放平台接口 github源码地址: https://github.com/spring-cloud/spring-cloud-security 前言: 什么是开放平台 ...

  2. SpringCloud 微服务开放平台接口

    一.什么是开放平台接口 场景 : 总公司与子公司 对接接口 还有一些合作伙伴 总公司 提供接口 1.能够获取到哪个子公司调用 2.授权机制,能够灵活控制接口调用权限. 例:阿里和顺丰闹矛盾,顺丰把权限 ...

  3. “淘宝” 开放平台接口设计思路

    最近对接的开放平台有点多,像淘宝.京东.快手.抖音等电商平台的开放平台基本对接了个遍,什么是CRUD BODY也许就是这样的吧!!! 虽然对接各大开放平台没啥技术含量,但咱也得学点东西不是,不能白对接 ...

  4. cloud自动发卡平台cloudfaka_open-cloud基于springcloud、oauth2、nacos打造的微服务开放平台...

    简介 搭建基于OAuth2的开放平台.为APP端.应用服务提供统一接口管控平台.为第三方合作伙伴的业务对接提供授信可控的技术对接平台 分布式架构,统一配置中心,服务治理.fegin(RPC)内部调用, ...

  5. springboot+mysql+基于Android的校园综合服务App平台的设计 毕业设计-附源码181042

    摘  要 随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多学校的眼球之中,他们利用网络来做这个校园评教的网站,随之就产生了"校园综合服务App平台 ",这样就让用 ...

  6. springboot基于Android的校园综合服务App平台的设计毕业设计源码181040

    摘  要 随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多学校的眼球之中,他们利用网络来做这个校园评教的网站,随之就产生了"校园综合服务App平台 ",这样就让用 ...

  7. (附源码)基于Android的校园综合服务App平台的设计 毕业设计181042

    摘 要 随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多学校的眼球之中,他们利用网络来做这个校园评教的网站,随之就产生了"校园综合服务App平台 ",这样就让用户 ...

  8. 腾讯云发布微瓴开放平台LinkBase,助力智慧建筑产业生态全面升级

    9月10日,在2020腾讯全球数字生态大会·智慧建筑专场中,腾讯云正式对外发布微瓴开放平台LinkBase. 基于微瓴智慧建筑管理平台,LinkBase向开发者提供一整套解决方案落地的交付工具包,使得 ...

  9. 应对海量并发请求,首席布道师谈微服务的应用架构设计

    何李石 七牛云首席布道师 <Go语言程序设计>译者,Go语言/容器虚拟化技术布道师.实践者. 5年以上互联网创业经验和企业级产品研发.运营经验,同时也是互联网产品基础架构解决方案专家. 随 ...

最新文章

  1. 第11章 PADS功能使用技巧(2)-最全面
  2. ZeroCopyLiteralByteString cannot access superclass
  3. 成功解决 利用plt.plot绘图时,横坐标出现浮点小数而不是整数的情况(坐标轴刻度)
  4. 分享一些优化博客的心得
  5. python输入input数组_python怎么输入数组
  6. Java--PATH环境变量
  7. pillow 图像 基本概念
  8. 对于android和iphone计划
  9. JMP M16:64
  10. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第2节 maven的安装和仓库种类_05仓库的种类和彼此关系...
  11. 基于单片机无线防丢报警器设计过程分享
  12. 样点自适应补偿(SAO)技术
  13. win7交换机共享宽带连接上网
  14. 【大数据技术分享】数据清理的终极指南
  15. Lotus Sametime
  16. 辩证法中包括一个关系、两大特征、三大规律、四种方法、五对范畴
  17. uniapp图片地址以文件流的形式传给后端
  18. [附源码]JAVA+ssm网上游戏商店设计(程序+Lw)
  19. VB6对接语音验证码接口DEMO示例
  20. 前端页面上换行、根据后端返回的换行符(“↵”)进行换行展示(vue、v-html)

热门文章

  1. MYSQL 查询语句(No.10)
  2. win7如何显示文件后缀名【系统天地】
  3. 纯CSS实现吸附效果
  4. hdu 3374 String Proble
  5. 五、T100采购应付之应付账款核销管理篇
  6. caxa电子图板2022软件
  7. 从哪里租vps远程桌面服务器,vps远程桌面服务器出租费用
  8. Redis三主三从集群搭建(三台机器)
  9. Android OpenGLES滤镜开发之仿抖音灵魂出窍
  10. android手表密码忘了咋办,忘记解锁密码?教你如何重置Android手机的解锁密码