OAuth 文档

1. 认证接口

请求

GET https://gitcode.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code&scope={scope}&state={state}

参数名描述类型数据类型
client_id*注册的客户端 IDquerystring
redirect_uri*授权后的urlquerystring
scope权限范围querystring
state随机字符串,
用于防止跨站点请求伪造攻击
querystring

2. 重定向

如果用户接受你的授权,GitCode 会重定向回您的网站,携带code参数以及你在上一步中在参数中提供的状态state。如果状态不匹配,则说明是第三方创建了请求,需要中止该过程。

GET {redirect_uri}?code={code}&state={state}

3. 获取授权token

POST https://gitcode.com/oauth/token?grant_type=authorization_code&code={code}&client_id={client_id}&client_secret={client_secret}

参数名描述类型数据类型
grant_type授权码模式queryauthorization_code
code*授权码querystring
client_id*注册的客户端 IDquerystring
client_secret*注册的客户端密钥form-datastring

响应

{
    "access_token": "eyPZPVNfsibj9tap_ibj3t3p",
    "expires_in": 1296000,
    "refresh_token": "b77ced3aee884348852160deab3697a1",
    "scope": "all_user all_key all_groups all_projects all_pr all_issue all_note all_hook all_repository",
    "created_at": "2024-04-20T09:07:59.889Z"
}

4. 使用访问令牌访问用户信息API

Authorization: Bearer {access_token}
GET https://api.gitcode.com/api/v5/user

5. 刷新access_token

POST https://gitcode.com/oauth/token?grant_type=refresh_token&refresh_token={refresh_token}