2017-06-29 66 views
0

我知道,Oauth用於授權第三方應用程序訪問用戶的數據(如他的Facebook帳戶上的照片),而無需向第三方應用程序顯示他的Facebook憑證。例如,當您嘗試使用在線照片編輯工具並且想要從Facebook加載照片時,Facebook會彈出一條消息,詢問您是否真的想讓應用程序訪問您的數據。所以在這一點上,Facebook只是返回一個臨時訪問令牌,應用程序可以使用它來訪問您的Facebook照片。 (據我瞭解這個訪問令牌的範圍是這樣的,它只有權限訪問特定用戶的照片)是的,這種設置是必需的,因爲你不能相信第三方應用程序那麼多,您的憑據。何時使用Oauth和API密鑰認證類型

假設以某種方式代替oauth,facebook使用了api密鑰認證。這意味着所有已經訂閱facebook API的第三方應用程序已經擁有了一個可用於訪問Facebook數據源的密鑰。因此,該應用程序可以直接將您帶到您的Facebook照片,Facebook不會通知您外人是試圖訪問您的私人數據。這種方法不適合暴露用戶敏感數據的api,但對於暴露不是特定用戶特定(如Google地圖)數據的apis,api關鍵方法應該足夠了,對嗎?

所以我的問題是,什麼樣的標準來決定應該使用哪種認證類型?如果我的理解錯誤,請感謝您的反饋。

回答

0

這裏是標準的4個Oauth2流量中的2個,它可以滿足您提到的場景。

  • 授權碼
  • 客戶端憑證。

使用自己的Facebook上面的例子,你能想到的是這樣的:

使用授權碼流爲貴「的Oauth」的情況下,在您的應用需要委託授權訪問用戶的Facebook照片。這意味着用戶必須登錄並授予對您的應用的訪問權您的應用必須擁有由Facebook發佈的API密鑰(客戶端ID)。

爲您的「API密鑰」方案使用客戶端憑據流。這將會在您的應用程序需要訪問例如公共Facebook頁面/信息並因此不需要特定用戶同意並且可以僅使用其API密鑰(客戶端ID &客戶端密鑰)