Spring Cloud 微服务开放平台接口

springcloud系列1——使用Springboot对外提供rest服务 说明 本系列视频基于周立的视频整理,他的博客地址:http://www.itmuch.com/。 由于springclound基于Springboot,因此第一篇熟悉一下Springboot。 这里为了后面的演示,创建一个project,名为microservice-spring-cloud。 创建2个子模块: * microservice-springcloud-user 该... 阅读详情

Spring Cloud 微服务开放平台接口

github源码地址:
https://github.com/spring-cloud/spring-cloud-security

前言:

什么是开放平台接口

场景 :

 总公司与子公司 对接接口  还有一些合作伙伴

 总公司 提供接口  1、能够获取到哪个子公司调用   2、授权机制,能够灵活控制接口调用权限。阿里和顺丰闹矛盾,顺丰把权限修改阿里巴巴就不能调用接口。

 很多公司都有开放平台接口可以供我们练习使用的哈哈:比如腾讯的QQ互联网、微信开放平台、蚂蚁金服开放平台 、微博开放平台,比如实现功能QQ联合登陆、微信扫码登陆。都提供了相应的开放平台。

 

访问:https://github.com/spring-cloud/spring-cloud-security   源码中有这个组件  帮助快速搭建开放平台   实现授权流程

 

OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。
QQ登录OAuth2.0:对于用户相关的OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。
QQ登录OAuth2.0采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于之前的OAuth1.0协议,其认证流程更简单和安全。

注意使用这个框架时候,表名不要随便改!底层都是写好了的昂! 

我们自己做完开放平台api接口,配备的还要有文档,我们自己整合swagger就OK了。

 

常用开放平台

QQ互联网开放平台

http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth2-0

 

什么是Oauth2

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

  在微服务里面,Oauth2 有密码模式 授权码模式

 

 认证授权协议,其实都是用链接,点解时候发起授权。比如点击登录,点击了一个连接进行授权。

 

 

小结:

OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。
QQ登录OAuth2.0:对于用户相关的OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。
QQ登录OAuth2.0:采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于之前的OAuth1.0协议,其认证流程更简单和安全。

 

概念:

           appId              (商户号,给子公司或者合作商户提供的)+ appKey(密钥,验证密钥)  (这俩配套的 都是必备的,并且appID永久不能改,appKey可以改)

           accessToken   调用接口权限访问令牌

           回调地址           授权成功 重定向地址 保证安全性 不要随便拼接成别的地址了

          Authorization code       通过授权码获取accessToken 

          openId              开放平台生成唯一的id  

 

体验下开放平台——调用QQ互联网接口的大体流程:

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

       生成授权连接: 我截了个网易云音乐的图

点击之后:

用户点击之后,才会获取授权码

  注意这个连接的 client_id 就是  appId  (商户号,给子公司或者合作商户提供的, 第三方需要的)

  state是防止csrf攻击的,随机生成的

 PS:如果我们自己设计的话,重要表结构: 回调地址的作用:以连接形式跳转到腾讯获取授权码,用户授权成功之后,跳转到回调地址redirect_uri回调地址(我们自定义的地址)

   

  上面的那个连接是网易自己封装的,我随便截的图,我们开发时候自己封装连接,在我们自己的网站上面,点击这个连接,然后会跳转到腾讯那边

  https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101462456&state=888&redirect_uri=http://toov5.fuck.com/qqLoginBack       我们自己拼接的

  点击后:

  会调用:http://toov5.fuck.com/qqLoginBack?code=23EDESD2346FSDFNWE436346&state=99              

2、 使用授权码获取AccessToken 

    获取到授权码之后,代表登录成功了,但是不代表合作伙伴已经对接成功。   授权码获取accessToken,然后再去获取openId,然后再去数据库查询关联的openId。有的话直接登录,没有就需要关联之

    令牌的作用,就是临时的效果作用(10分钟)。

    https://graph.qq.com/oauth2.0/token?        grant_type=authorization_code&client_id=101462456&client_secret=23EDESD2346FSDFNWE436346&code=23EDESD2346FSDFNWE436346 &  redirect_uri=http://mayikt.s1.natapp.cc/qqLoginBack

                                                               授权类型                                                                                  密钥      配置好的appKey                               授权码    返回的 Authorization code    :                                    回调地址 

   在Spring Cloud里面流程底层已经帮助实现了哈 只要关注表接口就OK了

   通过访问这个地址就会获取到 accessToken!! 拿到accessToken就可以调用接口了! (父公司可以通过 accessToken 逆向出 谁在调用我的接口。 在表里面accessToken和openId是关联的(每个合作的网站www.toov5.com是唯一的,一个域名一个openid的))、

 表结构:

 

3、 使用AccessToken获取openId

    通过accessToken之后,进而获取用户openId 

    自我拼接开发:

    https://graph.qq.com/oauth2.0/me?access_token=B2FD1997D149313F16C93D91C75AC75E

   访问后:

  

   获取到 openId就可以获取到用户相关信息了,授权码只能用一次! 授权了一段时间后就销毁了。需要重新授权哈

   

4、 使用openId获取用户信息

  https://graph.qq.com/user/get_user_info?access_token=B2FD1997D149313F16C93D91C75AC75E&oauth_consumer_key=101462456&openid=4B1717CBBFE1E900D2A1482C4A18B3BD

                                                                       accessToken                                                                                  appId                                         openId     

  此时会返回各种用户信息的~ 包括头像 图片之类的 性别 地址等等

 

  注: 数据库中 user 表 新增一个字段 qq_pen_id 字段

 

 

 


 

总结:        

 注: QQ联合登录基于Oauth2.0实现的

认证授权协议: 通过连接进行授权

1、生成Code连接  后去授权码  (用户点击)

2、使用用户获取的授权码,获取对应的accessToken (临时的效果作用)

3、使用accessToken获取用户openId(调用第三方接口)

4、使用penId获取用户信息

 

访问这个连接 会读取qq信息,哪个账户在登录

点击确定 跳转到回调的url中 并且携带者code

 

示例:

1、生成授权CODE链接,获取授权码 ----用户点击

https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101462456&state=888&redirect_uri=http://toov5.s1.natapp.cc/qqLoginBack

2、使用用户获取的授权码,获取对应的accessToken

https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=101462456&client_secret=4488033be77331e7cdcaed8ceadc10d5&code=E91DF5B0E2455A6B2AF25CD9FA1C7582&
redirect_uri=http://toov5.s1.natapp.cc/qqLoginBack

3、使用accessToken获取用户openid

https://graph.qq.com/oauth2.0/me?access_token=B2FD1997D149313F16C93D91C75AC75E
4、使用openid获取用户信息

https://graph.qq.com/user/get_user_info?access_token=B2FD1997D149313F16C93D91C75AC75E&oauth_consumer_key=101462456&openid=4B1717CBBFE1E900D2A1482C4A18B3BD

 

 

Oauth2授权原理

OAuth认证和授权的过程如下:
1、用户访问第三方网站网站(自公司),想对用户存放在服务商的某些资源进行操作。
2、第三方网站(自公司)向服务商(父公司)请求一个临时令牌。
3、服务商验证第三方网站的身份后,授予一个临时令牌。
4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。
5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资源。
6、授权成功后,服务商将用户导向第三方网站的返回地址。
7、第三方网站根据临时令牌从服务商那里获取访问令牌。
8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。
9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。

 

 

获取accessToken时候需要client_id 和client_client_secret

openId 获取用户信息 每个合伙网站保证唯一

www.toov5.com   这个域名的openId 唯一

 

基于Spring Cloud开放平台解决方案 SOP 一、SOP简介 基于Spring Cloud实现的一个开放平台解决方案项目,能够让开发团队快速得搭建起自己的开放平台。 SOP提供了两种接口调用方式,分别是:支付宝开放平台的调用方式和淘宝开放平台的调用方式。 通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。 SOP封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理... 阅读详情

相关推荐

基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结

基于Spring Boot和Spring Cloud框架开发的微服务架构学习(四)-Spring Cloud总结 Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),之前在第一章节也介绍这些,比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Z

zeb_perfect的专栏 11万+

SpringCloud 微服务开放平台接口

一、什么是开放平台接口 场景 : 总公司与子公司 对接接口 还有一些合作伙伴 总公司 提供接口 1、能够获取到哪个子公司调用 2、授权机制,能够灵活控制接口调用权限。 例:阿里和顺丰闹矛盾,顺丰把权限修改阿里巴巴就不能调用接口。 很多公司都有开放平台接口可以供我们练习使用的哈哈:比如腾讯的QQ互联网、微信开放平台、蚂蚁金服开放平台 、微博开放平台,比如实现功能QQ联合登陆、微信扫码登陆。都提供了...

小尾寒羊的博客 2122

Java Microservices 和 Spring Cloud:介绍微服务架构,并使用Spring Cloud来说明其在Java中的实现

介绍 什么是微服务架构 微服务架构的优势和挑战 微服务架构基础 服务分解策略(如何决定服务的边界) 数据管理,如何在分散的服务之间维持数据一致性 服务之间的通信方式 Java Microservices 在Java环境中实现微服务架构的一般步骤 示例:使用Spring Boot创建一个微服务 Spring Cloud介绍 Spring Cloud所提供的功能和组件(如配置管理,服务发现,断路器等) 如何使用Spring Cloud来解决微服务中的某些常见问题 使用Spring Cloud实现微服务

哎 你看的博客 1310

基于 Oauth2 搭建微服务 API 开放平台第 1 篇 —— 了解 Oauth2

OK,根据系列博客我们已经学习了互联网的基本安全架构:https://blog.youkuaiyun.com/biandanloveyou/category_11074285.html 接下来,我们开始搭建基于 Oauth2 的 API 开放平台。 什么是 API 开放平台? 在一些大型互联网公司,随着公司的业务发展逐渐庞大,需要和外部合伙伙伴进行合作,需要将公司的接口开放给外部其他合伙伙伴进行调用。 比如腾讯的QQ互联网、微信开放平台、蚂蚁金服开放平台 、微博开放平台,比如实现功能QQ联合登陆、微信扫...

流放深圳 1998

Spring Cloud微服务功能及其组件详细讲解

微服务是一种架构风格,它强调将大型复杂的系统功能根据业务需求切分为一系列小型、独立的服务。每个服务都专注于满足某个具体的业务需求,并且能够独立部署、运行和扩展。这种架构风格使得系统更加灵活、可维护,并且能够更好地应对业务变化和技术挑战。虽然微服务在初始阶段可能会增加开发和维护的难度,因为它要求团队具备更高的分布式系统开发和运维能力。但是,从长远来看,微服务带来的好处是显而易见的。它使得系统更加易于扩展,因为每个服务都可以独立地进行水平扩展,以满足不断增长的业务需求。

Jz_Stu的博客 5563

Spring Cloud微服务接口这么多怎么调试

导读 我们知道在微服务架构下,软件系统会被拆分成很多个独立运行的服务,而这些服务间需要交互通信,就需要定义各种各样的服务接口。具体来说,在基于Spring Cloud的微服务模式中,各个微服务会基于Spring MVC的Controller定义多个该微服务需要向外部发布的接口。 根据各个微服务功能边界定义的不同,有些微服务会提供与具体业务相关的接口,如支付接口账户接口等;而有些微服务则会提供一些...

Java_supermanNO1的博客 1313

SpringCloud——服务接口(api)

SpringCloud的服务接口基本等同于SpringBoot开发的api接口,只不过在springCloud需要将自己的服务注册到注册中心,通过网关统一访问路径 一个简单的api接口 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche...

qq_34819372的博客 1万+

【云原生技术】微服务工具平台简介

微服务工具平台是用于开发、部署、监控和管理微服务架构的集成工具集。微服务架构是一种软件架构风格,将应用程序拆分成小的、独立的服务,每个服务负责单一的业务功能,可以独立开发、测试、部署和扩展。微服务工具平台的目标是简化微服务的开发和运维,以提高开发人员和运维人员的效率,并确保微服务应用程序的稳定性和可伸缩性。服务开发工具:提供开发人员用于创建和部署微服务的工具,通常包括框架、SDK和集成开发环境(IDE)。容器编排和管理:用于容器化微服务的工具,如Docker和Kubernetes。

weixin_46453070的博客 1673

lamp-cloud 5.8.0 发布,开放平台能力增强

本次更新将项目版本升级至5.8.0,同步更新多项核心依赖版本;修复查询接口参数问题,重构配置模块;新增文件下载、回调相关功能及配套接口与示例,提升系统稳定性与扩展性。

t244387066的博客 550

【springcloud 微服务】Spring Cloud 微服务网关Gateway使用详解

Spring Cloud 微服务网关Gateway使用详解

congge_study的博客 7319

AI for Science:GNN预测分子性质全流程详解与工业实践

从分子表示到工业落地,一文掌握图神经网络在药物研发与材料设计中的核心实战近年来,的浪潮正深刻变革着传统科研范式。在药物研发与材料设计领域,作为核心环节,已从传统的实验试错转向基于图神经网络(GNN)的智能计算。本文将深入解析GNN预测分子性质的,涵盖数据准备、模型设计、训练优化到工业部署,并揭秘前沿技术与实战案例。

datacanvas2426的博客 1674

SOP 1.2.0 发布,开放平台解决方案项目

开发四年只会写业务代码,分布式高并发都不会还做程序员? SOP 1.1.0发布,此次更新内容如下: SOP...

weixin_34148456的博客 178

保姆级教程:彻底清理Win11更新缓存并解除外设,一次搞定0xc1900101更新错误

本文提供了一套完整的Win11更新报错0xc1900101解决方案,涵盖软件环境净化和硬件设备隔离。通过终止干扰进程、重置更新组件、清理临时文件以及断开外设等步骤,有效提升更新成功率。特别强调外设驱动兼容性对解决0xc1900101错误的关键作用。

weixin_33483304的博客 417

Spring Cloud微服务简介

Spring Cloud微服务 基础知识 微服务构建Spring Boot 服务治理Spring Cloud Eureka 客户端负载均衡Spring Cloud Ribbon 服务容错处理Spring Cloud Hystrix 声明式服务调用Spring Cloud Feign 基础知识 什么是微服务架构? 微服务是系统架构上的一种设计风格; 主旨是将一个原本独立的系统拆分成...

优快云 3万+

FAST-LIO 实战:从 LI-Init 标定到 YAML 配置全解析

本文详细解析了FAST-LIO算法中LI-Init标定的关键步骤与YAML配置优化技巧。从激光雷达与IMU的时空标定原理到实战参数调优,提供了一套完整的解决方案,帮助开发者解决点云畸变、建图漂移等常见问题,提升SLAM系统在动态环境中的稳定性和精度。

weixin_42651281的博客 327

【教程4>第4章>第22节】FFT频偏估计方法,导频+cordic频偏估计方法,costas环的性能对比

频偏范围适应性:Costas 环频偏锁定和基于 PN 导频和 CORDIC 算法的频偏估计都可以通过调整参数来适应一定范围的频偏,但 Costas 环的频率捕获范围相对较窄,而基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计对频偏范围较大。在高信噪比条件下,三种方法都可以获得较高的估计精度,但在低信噪比环境中,基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计这两个开环方案相对更具优势,而Costas 环频偏锁定的精度可能会受到较大影响.

FPGA/MATLAB学习教程/源码/项目合作开发 610

Spring Cloud微服务架构

符合"云"理念的大趋势-Spring Clund分布式服务治理的框架

每天都要开心呀(#^.^#) 2万+

YOLO11全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2

本文改进:BinaryAttention 结合YOLO11的C3k2模块,全网首发创新。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 855

在 Solid 中集成 BlockSuite:solid-basic 示例完整解析

本文基于 BlockSuite 仓库中的 [examples/solid-basic](https://link.gitcode.com/i/81787f1fadeb23310019116d2aa68bbc) 示例,讲解如何将 BlockSuite 编辑器与文档集合封装进 Solid 应用中,并完成多文档的创建、切换与展示。读完本文,你将掌握 `pnpm create vite` 脚手架与 Blo

gitblog_00146的博客 1023

单片机设计具备断电记忆功能的计时器

本文介绍了如何设计一款具备断电记忆功能的计时器,利用单片机和EEPROM存储器实现了计时器值的保存和恢复。当然,在实际的设计中还需要考虑其他因素,如电源管理、时钟精度等,以确保计时器的正常运行和准确性。选择合适的单片机:在设计计时器时,我们需要选择一款具备存储功能的单片机,以便在断电后能够保存计时器的状态。可以优化显示方式,使用更加直观的界面来展示计时器的值;函数中,我们首先从 EEPROM 中读取计时器的初始值,然后在一个无限循环中每秒钟增加计时器的值,并将新的值写入 EEPROM 中。

RlDart的博客 1094

BevFusion (1): 传感器介绍

激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。激光雷达是自动驾驶车辆的关键传感器,如下图所示,车辆上方旋转的圆柱体对应就是激光雷达传感器。

@bangbang的博客 1475

Spring Cloud微服务接口这么多怎么调试?

导读 今天和大家聊一下Spring Cloud微服务下服务接口调试及管理的话题!我们知道在微服务架构下,软件系统会被拆分成很多个独立运行的服务,而这些服务间需要交互通信,就需要定义各种各样的服务接口。具体来说,在基于Spring Cloud的微服务模式中,各个微服务会基于Spring MVC的Controller定义多个该微服务需要向外部发布的接口。 根据各个微服务功能边界定义的不同,有些...

yihuliunian的博客 3729

23、OpenMP常见用例与标准循环级示例详解

本文详细介绍了OpenMP的三种典型用例:循环级OpenMP、高级OpenMP和MPI+OpenMP,适用于不同层次的并行需求。重点讲解了循环级OpenMP在向量加法、流三元组和模板计算中的应用示例,并探讨了首次触摸优化、线程绑定、NUMA架构影响等关键性能优化策略。通过实际代码演示和性能分析,帮助开发者快速掌握OpenMP的基础并行化方法,并为后续高性能优化提供指导。

fanta的博客 87

【Spring Cloud】初识Spring Cloud

Spring Cloud --- 初识Spring Cloud

2403_87459748的博客 1827

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

微服务Spring Cloud架构详解

负载均衡在系统架构中是一个非常重要的内容,因为负载均衡是对系统的高可用、网络的压力的缓冲和处理能力扩容的重要手段之一,我们通常说的负载均衡都是指的是服务端的负载均衡,其中分为硬件负载均衡和软件负载均衡。Spring Cloud 封装了Netflix公司开发的Eureka模块来实现服务治理 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

Peter_Changyb的博客 9006

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: RBAC权限控制
下一篇: Spring Cloud2.0之Oauth2环境搭建(授权码模式和密码授权模式)
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值