【问题标题】:how to use flask REST API authentication如何使用烧瓶 REST API 身份验证
【发布时间】:2019-03-28 18:04:06
【问题描述】:

我们正在开展一个项目,为我们的客户提供我们的搜索引擎 Humkinar 的搜索服务。我们期待拥有 REST api,我们的客户将使用该 API 将搜索结果从我们的服务器获取到他的自定义应用程序中。

为了避免公开访问我的 REST API,我希望在其中进行某种身份验证。 HTTP 身份验证在我的情况下不起作用。因为在我的情况下,如果我使用基本的 HTTP 身份验证,我必须提供客户端的用户名和密码,这是客户端的秘密,并且客户端自定义应用程序上的用户不得知道客户端凭据。

为此,我需要某种基于 KEY 的身份验证,我们提供给客户,客户将其放入他们的自定义应用程序中。

谁能指导我如何在烧瓶 REST API 中做到这一点?
我如何生成 API 密钥并对其进行身份验证?

这有什么标准吗?请尽快回复我。

【问题讨论】:

  • 感谢@Carlo1585 的回复。我以前见过这种方法,但是这种方法提供的令牌会在一段时间后过期。就我而言,我不需要这样的东西。我将向我的客户提供某种 API 密钥,我的客户将使用该 API KEY 到他们的自定义应用程序中,用户可以通过嵌入在 REST 中的 API KEY 从我们的服务器进行搜索。然后服务器验证 REST API 并提供结果。我不想让我的 API 密钥过期,因此客户端不必在每次过期时重新生成它。我可以为此目的使用 UUID 吗?请帮助我

标签: python rest flask oauth-2.0 flask-restful


【解决方案1】:

通过很少的研究,我已经解决了这个问题。就我而言,最好的身份验证方式是使用 API-Keys。现在我正在为我的客户生成通用唯一的 API 密钥。每个客户端都有自己的 API 密钥,并将在 REST 请求中发送此密钥。我们的服务将接收请求并从中获取该密钥。然后这个密钥将从数据库中验证以进行验证,这样就可以确保身份验证。

我正在使用 UUID4 生成通用唯一的 36 字符长密钥

生成API-key的代码如下:

import uuid
uuid_str = str(uuid.uuid4())
print(uuid_str)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2021-11-01
    • 2021-09-06
    • 2016-07-17
    相关资源
    最近更新 更多