0

当我希望应用程序能够在没有用户登录的情况下检索应用程序特定信息时以及当我的 API 的另一部分有 OAuth 提供程序时,如何保护我的 API?我可以在没有用户登录的情况下使用客户端应用程序的 OAuth 凭据访问 API 吗?

我在railscasts 353之后使用门卫创建了 OAuth 提供者和客户端。我可以成功地向我的提供商应用程序验证用户身份,并代表用户向我的提供商 API 发出请求。

但是,API 的一部分是用户独立的,这意味着从 API 返回的信息不是特定于用户的,因此用户不必登录。例如,假设存储了电子商务网站和商品和价格在多个客户的提供者上。我希望客户端应用程序能够安全地检索与检索应用程序关联的项目/价格,而无需用户登录。因此,如果您访问 example.com,即使用户通过 OAuth 登录,项目也会显示.

当用户通过 OAuth 登录(创建 access_token)时,我只能通过 OAuth 检索此信息。有没有办法在没有用户在场的情况下使用 OAuth(我一直在尝试阅读关于 2-legged OAuth 的内容,如果这是一个合适的解决方案)?还是我需要为应用程序使用 Api 密钥(或 Http Basic Auth)来检索应用程序特定的数据?

如果 OAuth 不是正确的解决方案,因为我没有用户在场,我是否可以/应该使用基于 SSL 的 HTTP 基本身份验证并将客户端站点的 OAuth 密钥用作基本身份验证用户名的 API 密钥?

4

1 回答 1

0

如果您需要在 API 中对客户端应用程序进行身份验证(无需特别要求用户),请使用客户端凭据流程

于 2013-01-16T00:16:44.443 回答