GITEE 基于OAuth2的API V5版本

news2024/11/17 4:54:16
为了构建更好的码云生态环境,我们推出了基于OAuth2的API V5版本。
API V5接口使用方式以及Url都参照GitHub,为了各位开发者更好的兼容已经存在的第三方应用。

API 使用条款

  • OSCHINA 用户是资源的拥有者,需尊重和保护用户的权益。
  • 不能在应用中使用 OSCHINA 的名称。
  • 未经用户允许,不准爬取或存储用户的资源。
  • 禁止滥用 API,请求频率过快将导致请求终止。

OAuth2 认证基本流程

OAuth2 获取 AccessToken 认证步骤

1. 授权码模式
  • 应用通过 浏览器 或 Webview 将用户引导到码云三方认证页面上( GET请求https://gitee.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code
  • 用户对应用进行授权
    注意: 如果之前已经授权过的需要跳过授权页面,需要在上面第一步的 URL 加上 scope 参数,且 scope 的值需要和用户上次授权的勾选的一致。如用户在上次授权了user_info、projects以及pull_requests。则步骤A 中 GET 请求应为: https://gitee.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code&scope=user_info%20projects%20pull_requests
  • 码云认证服务器通过回调地址{redirect_uri}将 用户授权码 传递给 应用服务器 或者直接在 Webview 中跳转到携带 用户授权码的回调地址上,Webview 直接获取code即可({redirect_uri}?code=abc&state=xyz)
  • 应用服务器 或 Webview 使用 access_token API 向 码云认证服务器发送post请求传入 用户授权码 以及 回调地址( POST请求 注:请求过程建议将 client_secret 放在 Body 中传值,以保证数据安全。 https://gitee.com/oauth/token?grant_type=authorization_code&code={code}&client_id={client_id}&redirect_uri={redirect_uri}&client_secret={client_secret}
  • 码云认证服务器返回 access_token
    应用通过 access_token 访问 Open API 使用用户数据。
  • 当 access_token 过期后(有效期为一天),你可以通过以下 refresh_token 方式重新获取 access_token( POST请求https://gitee.com/oauth/token?grant_type=refresh_token&refresh_token={refresh_token}
  • 注意:如果获取 access_token 返回 403,可能是没有设置User-Agent的原因。
    详见:获取Token时服务端响应状态403是什么情况
2. 密码模式
  • 用户向客户端提供邮箱地址和密码。客户端将邮箱地址和密码发给码云认证服务器,并向码云认证服务器请求令牌。( POST请求。Content-Type: application/x-www-form-urlencodedcurl -X POST --data-urlencode "grant_type=password" --data-urlencode "username={email}" --data-urlencode "password={password}" --data-urlencode "client_id={client_id}" --data-urlencode "client_secret={client_secret}" --data-urlencode "scope=projects user_info issues notes" https://gitee.com/oauth/token
    scope表示权限范围,有以下选项,请求时使用空格隔开 user_info projects pull_requests issues notes keys hook groups gists enterprises
  • 码云认证服务器返回 access_token
    应用通过 access_token 访问 Open API 使用用户数据。

创建应用流程

  • 修改资料 -> 第三方应用,创建要接入码云的应用。

  • 填写应用相关信息,勾选应用所需要的权限。其中: 回调地址是用户授权后,码云回调到应用,并且回传授权码的地址。

  • 创建成功后,会生成 Cliend IDClient Secret。他们将会在上述OAuth2 认证基本流程用到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1625411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信创需求激增,国产服务器操作系统赋能数字化转型

信创,即信息技术应用创新,是指在关键领域和环节推进信息技术的自主创新,构建安全可控的信息技术体系。随着数字化转型的加速,信创需求激增,国产服务器操作系统在其中扮演着至关重要的角色。国产服务器操作系统如何赋能…

TikTok营销攻略:如何精准测试与优化品牌营销策略

在当今数字营销的世界中,社交媒体平台已成为吸引目标受众的重要工具。而TikTok,作为一个快速崛起的视频分享平台,在年轻人中享有巨大的流行度。对于那些希望利用这一平台进行营销的品牌和营销人员来说,了解如何在TikTok上测试营销…

[Rust开发]在Rust中使用geos的空间索引编码实例

geos的空间索引用的是STRTree,这是一种基于STR算法的四叉树索引,有如下特点: 使用Sort-Tile-Recursive (STR) 算法创建的仅查询的R-tree空间索引 STR(Sort-Tile-Recursive,递归网格排序) 基本思想是将所有的矩形以“tile”的方式分配到r/n&a…

使用Azure AI Search和LlamaIndex构建高级RAG应用

RAG 是一种将公司信息合并到基于大型语言模型 (LLM) 的应用程序中的常用方法。借助 RAG,AI 应用程序可以近乎实时地访问最新信息,团队可以保持对其数据的控制。 在 RAG 中,您可以评估和修改各个阶段以改进结果&#x…

大型企业高效内部协同,向日葵SDK私有化部署案例解析

大型集团企业的内部,沟通协作的重要性不言而喻,我们时常能听到关于所谓“大企业病”的吐槽,多数也是源于企业内部沟通协作效率低,进而导致内耗加重。甚至我们可以这么说,越是发展壮大的集团企业,其内部的沟…

力扣刷题学习(跟随视频学着刷)

使用入门 视频链接 【手把手带你刷Leetcode力扣|各个击破数据结构和算法|大厂面试必备技能【已完结】-哔哩哔哩】 https://b23.tv/vIcRT61 时空复杂度 时间: 空间:主要有O(1)和O(n)两种,只用计算开辟的内存&#xff…

3月份牛奶线上市场数据分析:销售额累计近18亿元

随着消费者健康意识的提升,牛奶作为日常营养补充品,其市场需求逐年增加。线上市场具有购买便捷性、价格透明性等优势,越来越多的消费者倾向于线上购买。 今年3月份,牛奶乳品市场呈现稳定发展状态。根据鲸参谋数据显示&#xff0c…

深度解析1688关键字搜索API接口:技术实现与应用探索

1688关键字搜索API接口的技术实现主要依赖于阿里巴巴开放平台提供的API服务。商家和开发者通过调用这些API接口,可以实现商品的搜索、排序、筛选、分页等功能。具体来说,技术实现主要包括以下几个步骤: 注册并获取API密钥:首先&am…

python爬虫插件XPath的安装

概要 XPath Helper是一款专用于chrome内核浏览器的实用型爬虫网页解析工具。XPath可以轻松快捷地找到目标信息对应的Xpath节点,获取xpath规则,并提取目标信息,并进行校对测试;可对查询出的xpath进行编辑,正确编辑的结…

一文解析golang中的协程与GMP模型

文章目录 前言1、线程实现模型1.1、用户级线程与内核级线程1.2、内核级线程模型1.3、用户级线程模型1.3、两级线程模型 2、GMP模型2.1、GMP模型概述2.1、GMP v1版本 - GM模型2.2、GMP v2版本 - GMP模型2.3、GMP相关源码2.4 调度流程2.5 设计思想 3.总结 前言 并发(并行&#x…

Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式

Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式 Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式。 cool 时间线: Golang Gin 框架写的免杀平台- (2021.11.12)Golang Gin 框架写的免杀平台,更…

CVPR往年论文查看

这个就是查看论文的网站:https://openaccess.thecvf.com/ 先别急, 看完再操作,听话!! 如果你要查看CVPR2022年的论文那么就在网站后加上CVPR2022 例如:https://openaccess.thecvf.com/CVPR2022 如果是2023年的那么…

赋能智慧校园!A3D数字孪生可视化,轻量又高效!

放假之后,学生们会逐步返学,大量人员出入校园,安全更是不容忽视,如何在短时间内对大批人员及设施进行智能监管?数字化转型是关键手段,我们可以融合线上线下数据,搭建3D立体的智慧校园&#xff0…

RoadBEV:鸟瞰图中的道路表面重建

1. 代码地址 GitHub - ztsrxh/RoadBEV: Codes for RoadBEV: road surface reconstruction in Birds Eye View 2. 摘要 本文介绍了RoadBEV:鸟瞰图中的道路表面重建。道路表面条件(特别是几何形状)极大地影响了自动驾驶汽车的驾驶性能。基于…

【C#】Stopwatch计时器

使用Stopwatch检查C#中代码块的执行时间,比如歌曲,图片的下载时间问题 首先,我们可看到Stopwatch 类内部的函数。 根据需求,我们具体可使用到 Start() 开始计时,Stop() 停止计时等 //创建 Stopwatch 实例 Stopwatch …

ELK 日志分析系统(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释,Kiabana 服务的默认监听端口为5601 server.po…

AWR报告采集

一、windows下采集 自动负载信息库(Automatic Workload Repository,AWR)是在Oracle 10g中被引入的,缺省地被安装到Oracle10g数据库中,用于收集关于该特定数据库的操作统计信息和其他统计信息。AWR的采样工作由后台进程…

2018.3SDK工具融合bit文件不成功_microblaze加载程序不成功

2018.3SDK工具融合bit文件不成功_microblaze加载程序不成功 描述: 正常开发流程是vivado端把PL端开发好了,导出HDF平台文件,然后SDK根据HDF文件创建工程,完成PS端的开发工作,这时候就要下载调试了,发现SDK的做法是把vivado导出的bit文件和SDK编译谁生成的elf文件进行了融…

Idea:通义千问插件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、通义千问大模型 二、程序编写助手 三、Idea安装通义千问插件 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、通义千问大模型…

力扣HOT100 - 200. 岛屿数量

解题思路: 岛屿题目一般使用dfs。 1.判断是否越界 2.用0,1,2三个状态标识当前格子的状态(三个状态比两个状态更清晰) 3.向周围四个方向遍历 class Solution {public int numIslands(char[][] grid) {int cnt 0;fo…