对oAuth感到困惑,在Rails中创建安全的API

时间:2013-01-08 17:32:38

标签: ruby-on-rails api oauth oauth-2.0

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

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

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

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

如果OAuth不是正确的解决方案,因为我没有用户,可以/我应该使用HTTP Basic Auth over SSL并使用客户端站点的OAuth密钥作为基本auth用户名的API密钥吗?

1 个答案:

答案 0 :(得分:0)

如果您需要在API中验证客户端应用程序(无需特定用户),请使用Client Credentials flow