GPT Action 身份验证
了解 GPT 操作的身份验证选项。
操作提供不同的身份验证架构以适应各种使用案例。要为您的操作指定身份验证架构,请使用 GPT 编辑器并选择“无”、“API 密钥”或“OAuth”。
默认情况下,所有操作的身份验证方法都设置为 “None”,但您可以更改此设置并允许不同的操作具有不同的身份验证方法。
无身份验证
我们支持无需身份验证的应用程序流,在这些应用程序中,用户可以直接向您的 API 发送请求,而无需 API 密钥或使用 OAuth 登录。
请考虑对初始用户交互不使用身份验证,因为如果强制用户登录应用程序,您可能会遇到用户流失的情况。您可以创建“已注销”体验,然后通过启用单独的操作将用户移动到“已登录”体验。
API 密钥认证
就像用户可能已经使用您的 API 一样,我们允许通过 GPT 编辑器界面进行 API 密钥身份验证。当密钥存储在数据库中时,我们会对其进行加密,以确保您的 API 密钥安全。
如果您的 API 执行的后果性操作比无身份验证流略多,但不需要单个用户登录,则此方法非常有用。添加 API 密钥身份验证可以保护您的 API,并为您提供更精细的访问控制以及对请求来源的可见性。
OAuth
操作允许每个用户使用 OAuth 登录。这是提供个性化体验并为用户提供最强大操作的最佳方式。包含操作的 OAuth 流的简单示例如下所示:
- 首先,在 GPT 编辑器 UI 中选择“身份验证”,然后选择“OAuth”。
- 系统将提示您输入 OAuth 客户端 ID、客户端密钥、授权 URL、令牌 URL 和范围。
- 客户端 ID 和密钥可以是简单的文本字符串,但应遵循 OAuth 最佳实践。
- 我们存储客户端密钥的加密版本,而客户端 ID 可供最终用户使用。
- OAuth 请求将包括以下信息:
request={'grant_type': 'authorization_code', 'client_id': 'YOUR_CLIENT_ID', 'client_secret': 'YOUR_CLIENT_SECRET', 'code': 'abc123', 'redirect_uri': 'https://chatgpt.com/aip/g-some_gpt_id/oauth/callback'}
- 为了让某人使用 OAuth 的操作,他们需要发送一条消息来调用该操作,然后用户将在 ChatGPT UI 中看到一个“登录 [域]”按钮。
- 终端节点应返回如下所示的响应:
authorization_url
{ "access_token": "example_token", "token_type": "bearer", "refresh_token": "example_token", "expires_in": 59 }
- 在用户登录过程中,ChatGPT 使用指定的 API 向您发出请求,我们希望取回一个访问令牌和一个可选的刷新令牌,我们用它来定期获取新的访问令牌。
authorization_url
authorization_content_type
- 每次用户向操作发出请求时,用户的令牌都会在 Authorization 标头中传递:(“Authorization”: “[Bearer/Basic] [user's token]”)。
- 出于安全原因,我们要求 OAuth 应用程序使用 state 参数。