gpt4 book ai didi

python - 如何为 REST API 实现身份验证?

转载 作者:太空狗 更新时间:2023-10-29 18:29:06 25 4
gpt4 key购买 nike

我正在创建一个基于 Web 的服务,我想将其公开为 REST API,以便开发人员能够使用它创建应用程序。我希望开发人员能够创建/管理用户帐户并通过 API 进行身份验证。如何处理? OAuth 还是其他?

我为此使用了 python、flask、mongodb。

最佳答案

我们已经解决了以下问题,使用 OAuth 2 (这比 OAuth 1 更可取)。特别是我们正在使用 resource owner password credentials流动。至于如何将其集成到我们的RESTful服务中,思路如下:

  • 初始资源在被未经授权的用户访问时返回 401。401 的主体包含一个链接,带有 rel=oauth2-token。 . (您如何指示链接取决于您的媒体类型;我们使用 HAL ,但您甚至可以只使用 Link header 。)
  • 用户通过身份验证后,他返回初始资源,在他的 Authorization header 中发送从 OAuth 2 进程返回的不记名 token 。此时,我们返回 200,其中包含所有可用的正常链接。

我们不会公开帐户创建,但如果您想这样做,我会在初始资源中使用另一个可供未授权用户使用的链接来实现。该链接将具有自定义 rel,因为它特定于您的应用程序,例如rel=http://rels.myapi.com/users

良好的 RESTful 设计会表明带有此 rel 的链接指向例如http://myapi.com/users,并且 API 的消费者对该端点执行 POST,这会向他们返回带有 的新用户资源Location header 指向新创建的用户资源,例如http://myapi.com/users/用户名。 (用户资源本身当然是另一个rel,区分单个用户资源和多个用户集合资源。)

关于python - 如何为 REST API 实现身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com