如何使用 flask REST API 认证
how to use flask REST API authentication
我们正在开展一个项目,为我们的客户提供我们的搜索引擎 Humkinar 的搜索服务。我们期待 REST api,我们的客户将使用它从我们的服务器获取搜索结果到他的自定义应用程序中。
为了避免 public 访问我的 REST API 我想在其中进行某种身份验证。 HTTP 身份验证不适用于我的情况。因为在我的例子中,如果我使用基本的 HTTP 身份验证,我必须提供客户端的用户名和密码,这是客户端的秘密,客户端自定义应用程序上的用户不得知道客户端凭据。
为此,我需要某种基于 KEY 的身份验证,我们将其提供给我们的客户,而客户将其放入他们的自定义应用程序中。
谁能指导我如何在 Flask REST API 中做到这一点?
我如何生成 API 密钥并验证它们?
这有什么标准吗?请尽快回复我。
经过少量研究,我已经解决了这个问题。在我的案例中,最好的身份验证方法是使用 API-Keys。现在我正在为我的客户生成普遍唯一的 API-Key。每个客户端都有自己的 API-key 并将在 REST 请求中发送此密钥。我们的服务将接收请求并从中获取该密钥。然后这个密钥会从数据库中验证,这样验证就可以了。
我正在使用 UUID4 生成通用唯一的 36 字符长密钥
生成API密钥的代码如下:
import uuid
uuid_str = str(uuid.uuid4())
print(uuid_str)
我们正在开展一个项目,为我们的客户提供我们的搜索引擎 Humkinar 的搜索服务。我们期待 REST api,我们的客户将使用它从我们的服务器获取搜索结果到他的自定义应用程序中。
为了避免 public 访问我的 REST API 我想在其中进行某种身份验证。 HTTP 身份验证不适用于我的情况。因为在我的例子中,如果我使用基本的 HTTP 身份验证,我必须提供客户端的用户名和密码,这是客户端的秘密,客户端自定义应用程序上的用户不得知道客户端凭据。
为此,我需要某种基于 KEY 的身份验证,我们将其提供给我们的客户,而客户将其放入他们的自定义应用程序中。
谁能指导我如何在 Flask REST API 中做到这一点?
我如何生成 API 密钥并验证它们?
这有什么标准吗?请尽快回复我。
经过少量研究,我已经解决了这个问题。在我的案例中,最好的身份验证方法是使用 API-Keys。现在我正在为我的客户生成普遍唯一的 API-Key。每个客户端都有自己的 API-key 并将在 REST 请求中发送此密钥。我们的服务将接收请求并从中获取该密钥。然后这个密钥会从数据库中验证,这样验证就可以了。
我正在使用 UUID4 生成通用唯一的 36 字符长密钥
生成API密钥的代码如下:
import uuid
uuid_str = str(uuid.uuid4())
print(uuid_str)