2015-12-02 63 views
0

我有一个API。假设它允许用户在排行榜上更新他们的分数。这使用OAuth2。OAuth2:保护非用户资源

代表用户使用OAuth2的客户端拥有32个字符ID和密码。

我也有一些资源是“公共”,不属于用户。说取得整体排行榜。

我希望客户端能够通过API访问它们。但是,这些客户可能不是用户(其他网站说),实现OAuth流程似乎过于复杂。但是,我也希望客户能够识别自己,以跟踪谁在使用它,并实施比率检查(如果需要)。

OAuth2中有什么可以允许的吗? client_credentials是针对'可信赖的客户'的,这些不会是这样的。

或者,我是否对这些端点使用不同形式的身份验证,以便代替授权:承载[OAUTH2_TOKEN],客户端将执行授权:令牌[CLIENT_ID]?

回答

0

对于不受保护的资源,您可以将这些资源放在互联网上,而无需任何OAuth保护。

但是,如果你这样做,你不能真正相信客户端发送给你的信息。所以这取决于验证他们发送的客户端ID的重要性。

如果是为了节流,那么通过OAuth运行这个可能就足够了,所以有人不会说谎他们的客户端ID并窃取别人的带宽。但这是一个判断呼吁。

如果你需要信任他们发送的信息,即使它只是一个标识符,那么你最好让他们发送他们的访问令牌,而不是提出一个特殊的协议&定义不同的标记。

或者只是相信他们发送的ID。

+0

嗯。好点子。他们可能必须交换他们的client_id作为令牌。它看起来像Twitter与纯应用程序认证类似:https://dev.twitter.com/oauth/application-only – Apemantus