个人访问令牌

个人访问令牌类似某些系统中的应用专用密码。生成后可根据设置的权限访问特定的API。 可以用于创建自己的程序或者脚本。

下面我们来尝试生成一个个人访问令牌。

创建个人访问令牌

在个人头像的下拉菜单中,选择个人设置。

个人设置

在左栏中选择访问令牌即可进入个人访问令牌列表。

访问令牌

点击新建令牌。

新建个人访问令牌

在表单中填写令牌描述,以及选择此令牌的访问权限。填完后提交。

提交

提交后,页面会跳回访问令牌列表页面,并将新建的令牌的内容显示出来。

注意:令牌的内容只会显示一次,为了安全,请将其复制粘贴至您需要使用的地方,并不要保存副本。 如果您是需要调试,请在调试后,选择重新生成令牌,再将其粘贴到最终使用程序或的脚本中。

显示

编辑个人访问令牌

编辑个人访问令牌,可以修改描述以及权限。

编辑

如果遗失了令牌或者需要更新令牌,可以选择重新生成。

重新生成后令牌内容也是只会显示一次。

删除访问令牌

如果不希望令牌再被继续使用了,为了避免任何有可能的泄露,建议将其删除。

删除

在列表页面的右上角,有一个『移除所有』的功能。点击并确认后,会将所有的个人访问令牌全部删除。

访问令牌的权限

访问令牌目前与 OAuth 的 Access Token 共用一个 Scope 权限范围。

scope 名称 说明 授权
project:depot 获取 commit 信息,分支操作,MR/PR, LineNotes, fork, webhook 等操作 读写
user 授权获取用户信息(用户名称,头像,tag,email,动态 )
user:email 授权获取用户的email )
notification 授权读取通知信息,包含email通知 读写
social:message 授权读取、发送私信、私信语音 读写
project 授权项目信息、项目列表,仓库信息,公钥列表、成员,任务列表
project:members 授权项目管理者增、删、改项目成员,退出项目 读写
project:task 授权任务操作,包含增、删、改 读写
project:file 授权文件,包含增、删、改 读写
project:key 授权操作部署公钥、个人公钥 读写

使用访问令牌

访问令牌可以用于 http 请求中以代替用户名密码,访问 Coding API。

可以在 http 请求中使用 -u 参数,加入用户。

~ curl -u testuser https://test.coding.net/api/current_user
Enter host password for user 'testuser':
{
    "code": 0,
    "data": {
        "global_key": "testuser",
        "name": "testuser",
        ...
    }
}

或者

~ curl -u "testuser:90ed7a169febb12d17e14aa5531827476f6b3a4e" https://test.coding.net/api/current_user
{
    "code": 0,
    "data": {
        "global_key": "testuser",
        "name": "testuser",
        ...
    }
}

或者设置至 http 请求的 Header 中

~ curl -H "Authorization: token 90ed7a169febb12d17e14aa5531827476f6b3a4e" https://test.coding.net/api/current_user
{
    "code": 0,
    "data": {
        "global_key": "testuser",
        "name": "testuser",
        ...
    }
}

利用令牌访问代码仓库

在设置 Scope 权限选项中勾选 project:depot 后,可以用于访问代码仓库。

git clone https://testuser:90ed7a169febb12d17e14aa5531827476f6b3a4e@test.coding.net/test/testRepo.git
Cloning into 'testRepo'...
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 11 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.