概述

个人访问令牌类似某些系统中的应用专用密码。生成后可根据设置的权限访问特定的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 参数,加入用户。

  1. ~ curl -u testuser https://test.coding.net/api/current_user
  2. Enter host password for user 'testuser':
  3. {
  4. "code": 0,
  5. "data": {
  6. "global_key": "testuser",
  7. "name": "testuser",
  8. ...
  9. }
  10. }

或者

  1. ~ curl -u "testuser:90ed7a169febb12d17e14aa5531827476f6b3a4e" https://test.coding.net/api/current_user
  2. {
  3. "code": 0,
  4. "data": {
  5. "global_key": "testuser",
  6. "name": "testuser",
  7. ...
  8. }
  9. }

或者设置至 http 请求的 Header 中

  1. ~ curl -H "Authorization: token 90ed7a169febb12d17e14aa5531827476f6b3a4e" https://test.coding.net/api/current_user
  2. {
  3. "code": 0,
  4. "data": {
  5. "global_key": "testuser",
  6. "name": "testuser",
  7. ...
  8. }
  9. }

利用令牌访问代码仓库

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

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