授权认证

CODING 提供了丰富的 API 接口,注册应用即可使用,无需审核,支持两种认证方式:OAuth 2.0 协议、个人访问令牌

OAuth 认证

创建 CODING 应用

  1. 点击【个人设置】->【开放生态】->【创建应用】,填写信息。「回调地址」可填写为 http://127.0.0.1,便于本地开发。

  1. 创建完成会获得 Client ID 和 Client Secret。

用户授权

浏览器访问以下链接,进入到授权登录页面:

GET https://{your-team}.coding.net/oauth_authorize.html

参数说明:

  • your-team:团队域名前缀;
  • client_id:应用详情页的 Client ID;
  • redirect_uri:应用详情页填写的回调地址;
  • response_type:返回类型,固定为 code;
  • scope:授权范围,以逗号分隔,包括:
scope 名称 授权 说明
user 获取用户信息(名称、头像等 )
user:email 读取用户的 email
notification 读/写 读取用户通知信息
project 授权项目信息、项目列表,仓库信息,公钥列表、成员
project:api_doc 发布 授权发布 API 文档
project:artifacts 读/写 授权推送、拉取制品库
project:depot 读/写 完整的仓库控制权限
project:file 读/写 授权读取与操作文件
project:issue 读/写 授权读取与操作项目协同模块
project:key 读/写 授权读取与操作部署公钥和个人公钥
project:members 读/写 授权项目管理者读取与操作成员
project:notice 读/写 授权发布、删除、查询项目公告接口

登录授权后,浏览器将带着授权码(code)参数跳转到回调地址,如:

http://127.0.0.1:9002/api/oauth/callback?code=7923f69445119400c12e1a70b027a97a

获取 access_token

获取授权码(code)后,开发者的后端程序向 CODING 发送请求,获取 access_token。

请求链接:

POST https://{your-team}.coding.net/api/oauth/access_token

参数说明:

  • your-team:团队域名前缀;
  • client_id:应用详情页的 Client ID;
  • client_secret:应用详情页的 Client Secret;
  • code:上一步获取的授权码;
  • grant_type:授权类型,固定为 authorization_code;

返回值:

{
    "access_token": "8883405e6c14856a1e2b3c4e2d2f2666",
    "refresh_token": "6663211fda1a41f5a1c1fa320d819aaa",
    "team": "anywhere",
    "expires_in": "780260",
    "token_type":"bearer"
}

获取当前用户信息

请求链接:

GET https://{your-team}.coding.net/api/me

参数说明:

  • access_token:上一步获取的 access_token;

请求示例:

curl https://codes-farm.coding.net/api/me?access_token=at58a21646f43699196c42a30d77at

返回值:

{
  "avatar": "https://coding-net-production-static-ci.codehub.cn/2cb665a3-bebc-4b09-aa00-2b6df3e33edc.jpg",
  "created_at": 1572178118000,
  "global_key": "KMRnIKgzbV",
  "name": "sink",
  "name_pinyin": "sink",
  "updated_at": 1598411867000,
  "path": "/u/KMRnIKgzbV",
  "id": 183478,
  "team": "anywhere",
  "email_validation": 1
}

个人令牌认证

获取个人令牌

点击右上角的【个人设置】>【访问令牌】>【新建令牌】,勾选相关权限后会生成「个人访问令牌」。若刷新页面令牌会消失,需输入账号密码后重新生成。

获取当前用户信息

请求链接:

GET https://{your-team}.coding.net/api/me

header:

Authorization: token {访问令牌}

请求示例:

curl -H 'Authorization: token t0544956253e82fa2ba780a5248750t' \
https://codes-farm.coding.net/api/me

新版接口认证方式

新版接口不再使用 RESTFul 和 header 认证,而使用 POST 和统一链接。

统一链接:https://e.coding.net/open-api

Accept: application/json

Access Token 输入示例:

{
    "Action":"DescribeOneProject",
    "AccessToken":"at58a21646f43699196c42a30d77at",
    "ProjectId":2
}    

个人访问令牌输入示例:

{
    "Action":"DescribeOneProject",
    "Authorization":"t0544956253e82fa2ba780a5248750t",
    "ProjectId":2
}    

输出示例:

{
  "Response": {
    "Project": {
      "Name": "coding-demo",
      "Id": 2,
    },
    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
  }
}

最近更新
感谢反馈有用
感谢反馈没用