GITEE 基于OAuth2的API V5版本

server/2024/9/25 18:38:00/
为了构建更好的码云生态环境,我们推出了基于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.ppmy.cn/server/23755.html

相关文章

严把质量关,饮片追溯系统应用,信息化追溯助力用药安全-亿发

中药饮片作为我国中药产业的重要组成部分,在医药工业中发挥着至关重要的作用。近年来,中药饮片行业虽然取得了稳步增长,但同时也面临着产业集中度低、竞争激烈、质量良莠不齐等诸多挑战。为了应对这些问题,国家和各地纷纷加强中药…

C语言例题(递归、二分查找、冒泡排序)

一、递归案例 有5个人坐在在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大2岁。最后问第1个人,他说是10岁。请…

二叉树06(leetcode654,617,700,98)

参考资料: https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html 654. 最大二叉树 题目描述: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为…

学习C语言的指针

有一阵没更新了,因为最近比较繁忙,所以更新比较慢,还在慢慢学习 话不多说,开始今天的内容,聊一聊C语言指针。 很多小伙伴可能会被指针这个名字吓到,觉得很难,实际上确实有点难,但是…

tcp inflight 守恒算法背后的哲学

tcp inflight 守恒拥塞控制的正确性 很久以前我开始纠结 tcp 锯齿,很多年后我知道这叫 capacity-seeking,甚至说 tcp 属于 capacity-seeking protocol 的原因就是它早已深入人心的 aimd 行为,而该行为生成了 tcp 锯齿。 在消除锯齿&#xf…

乐观锁和悲观锁

概述 悲观锁 坏事一定会发生,所以先做预防(上锁) 写多读少 乐观锁:坏事不一定会发生,所以事后补偿 写少读多 悲观锁 select for update,sychronized等,乐观锁,乐观锁如cas和版本号 …

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…

LeetCode——滑动窗口

滑动窗口 包含特定元素的子串(要匹配到的目标),或最长[这个好像没啥意思]、或最短、或等长 思考:(暂时感受) 1)什么时候扩充窗口——串没走完就得扩呀; 2)窗口扩充后…