我即将在设计阶段编写一个新的RESTful API。我跟谈过的几个人一直在告诉我OAuth,所以我正在做一些功课。
有一件事我没有真正看到,也许并不多(没有人?)正在这样做,但我想要这个API,我正在努力使用或不使用用户的上下文。
基本上,如果您使用经过身份验证的用户调用API,则会从用户的首选项中加载一些参数。但我想构建它,以便在没有用户的情况下可以调用相同的调用,在这种情况下,它们需要从用户帐户读取的其他参数。
这是否很难实现,因为我想将OAuth用于基于用户的方法签名的身份验证组件?将它们构建为两个独立的API会更好吗?
我的另一个目标是在两种情况下都使用相同的应用程序密钥 / 应用程序密钥范例。
这样你就可以更具体地了解我的意思,想象一下这些我希望在我的API中支持的psuedo函数签名
/**
* Search, when called with a user. Here I'd like to authenticate via OAuth
*/
function search(string search, object user)
/**
* Search, when called without a user requires more arguments.
* These calls require application key/application secret
* but no user authentication.
*/
function search(string search, object coupon_preferences, object store_preferences)
答案 0 :(得分:1)
OAuth 2.0(RFC 6749)将流定义为客户端凭据授权。
在流程中,客户端应用程序访问令牌端点,OAuth授权服务器向客户端发出访问令牌,无需任何用户身份验证/授权。
有关详细信息,请参阅RFC 6749的“4.4 Client Credentials Grant”。