2015-07-13 451 views
0

我在寫一個Chrome擴展,它將使用Bing翻譯API。要使用它,我需要一個訪問令牌,可以使用我的clientID和客戶端密鑰來請求訪問令牌。它每十分鐘過期一次。Chrome擴展Bing必應翻譯

做這個客戶端的正確方法是什麼?我顯然不想分發我的客戶機密,但訪問令牌每隔十分鐘就會過期。

回答

1

您無法以防彈的方式保護客戶端。

你基本上有2個選項。

  1. 接受這樣一個事實,即您的擴展代碼可以被檢查和提取祕密。然後,您可以使用chrome.identity以這種方式使用OAuth。考慮到API是可計費的,這是不理想的。

  2. 將密鑰移到某個託管服務器。然後,您的擴展程序將不得不向服務器請求一個令牌(該令牌到期,此時需要從服務器重新請求)。這是唯一可靠的方法。

Some APIs(不是冰)提供僅使用一個客戶端身份認證的方法,理解是JavaScript客戶端不能確保祕密。這不是一個選項 - 你的代碼是假設生成令牌服務器端。