2015-12-02 78 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