我正在创建一个基于 Web 的服务,我想将其公开为 REST API,以便开发人员能够使用它创建应用程序。我希望开发人员能够创建/管理用户帐户并通过 API 进行身份验证。如何处理?OAuth 还是其他?
我为此使用 python、flask、mongodb。
我正在创建一个基于 Web 的服务,我想将其公开为 REST API,以便开发人员能够使用它创建应用程序。我希望开发人员能够创建/管理用户帐户并通过 API 进行身份验证。如何处理?OAuth 还是其他?
我为此使用 python、flask、mongodb。
我们已经解决了以下问题,使用OAuth 2(比 OAuth 1 更可取)。特别是我们正在使用资源所有者密码凭证流程。至于如何将其集成到我们的 RESTful 服务中,思路如下:
rel=oauth2-token
. (您如何发出链接信号取决于您的媒体类型;我们使用的是HAL,但您甚至可以只使用Link
标题。)Authorization
标头中发送从 OAuth 2 进程返回的不记名令牌。此时,我们返回 200,所有正常链接都可用。我们不会公开帐户创建,但如果您想这样做,我会使用初始资源中未经授权的用户可用的另一个链接来这样做。该链接将具有自定义rel
,因为它特定于您的应用程序,例如rel=http://rels.myapi.com/users
良好的 RESTful 设计将表明与 this 的链接rel
指向 eg http://myapi.com/users
,并且 API 的使用者POST
对该端点执行 a 操作,该端点向他们返回新的用户资源,其Location
标头指向在 eg 处新创建的用户资源http://myapi.com/users/username
。(用户资源本身当然是另一种rel
,区分单数用户资源和复数用户集合资源。)