我最初计划将 OpenAI API 密钥包含在基于 Flutter 的应用程序中。但是,我最近了解到,不建议在客户端应用程序中存储 API 密钥,因为该应用程序可以被反编译,从而允许提取密钥。
相反,建议将 API 密钥存储在您的服务器上,并让您的服务器与外部 API 进行通信。然后,您的服务器可以将响应转发给客户端。
但是,Flutter 应用中仍然需要使用服务器的 API 端点来促进与服务器的通信,这意味着攻击者仍然可以找到服务器端点并最终使用它来访问 OpenAI 服务
您的 Flutter 应用程序有身份验证功能吗?
如果是这样,则将访问令牌从经过身份验证的前端用户传递到您的服务器(例如 Firebase idToken),并在授予对 OpenAI 路由的访问权限之前使用中间件验证该令牌。