基于令牌的身份验证

自 v11.0.3 版本起可用

HTTP Authorization 请求头包含用于向服务器验证用户身份的凭据。它由授权类型(token 或 Basic)和相应的令牌组成。

Authorization: <type> <token>
</token></type>

该令牌由 api-key 和 api-secret 通过冒号连接而成。

生成 API 密钥和 API 机密

  1. 前往用户列表并打开一个用户。
  2. 点击“设置”选项卡。(如果看不到选项卡,请跳过此步骤)
  3. 展开 API 访问部分,然后点击“生成密钥”。
  4. 您将看到一个包含 API 机密的弹窗。请复制此值并妥善保管(例如密码管理器)。
  5. 您还会在此部分看到另一个字段“API 密钥”。

现在,使用这两个密钥即可对 API 请求进行身份验证。使用这些密钥发出的每个请求都将记录到您在步骤 1 中选择的用户名下。这也意味着系统将针对该用户进行角色权限检查。您也可以专门为 API 调用创建一个新用户。

令牌

HTTP 请求头:

Authorization: token <api_key>:<api_secret>
</api_secret></api_key>

Python 示例:

import requests

url = "http://frappe.local:8000/api/method/frappe.auth.get_logged_user"
headers = {
    'Authorization': "token 
<api_key>:<api_secret>"
}
response = requests.request("GET", url, headers=headers)
</api_secret></api_key>

基本认证

如果使用“基本”认证方案,凭据由 api_key 和 api_secret 组合而成,构造方式如下:

  1. 将两个值用冒号连接:<api_key>:<api_secret></api_secret></api_key>
  2. 将生成的字符串进行 base64 编码:base64encode(<api_key>:<api_secret>)</api_secret></api_key>

HTTP 请求头:

Authorization: Basic base64encode("<api_key>:<api_secret>")
</api_secret></api_key>

Python 示例:

import requests
import base64

url = "http://frappe.local:8000**/api/method/frappe.auth.get_logged_user**"
headers = {
    'Authorization': "Basic %s" % base64.b64encode(
<api_key>:<api_secret>)
}
response = requests.request("GET", url, headers=headers)
</api_secret></api_key>

访问令牌

如果使用 OAuth 2 访问令牌来验证请求,该令牌是 Frappe Server 在设置 OAuth 2 并生成令牌后提供的不透明 access_token 字符串。请参阅 Guides / Integration / How To Use OAuth 2

HTTP 请求头:

Authorization: Bearer access_token

Python 示例:

import requests
import base64

url = "http://frappe.local:8000**/api/method/frappe.auth.get_logged_user**"
headers = {
    "Authorization": "Bearer %s" % access_token
}
response = requests.request("GET", url, headers=headers)

更多资源

  • 授权请求头