我正在撰写将使用Bing翻译API的Chrome扩展程序。要使用它我需要一个访问令牌,我可以使用我的clientID和客户端密钥请求。它每十分钟到期一次。
这个客户端的正确方法是什么?我显然不愿意分发我的客户机密,但访问令牌每十分钟到期一次。
答案 0 :(得分:1)
您无法以防弹方式保护客户端。
你基本上有两个选择。
接受可以检查您的扩展程序代码并提取秘密的事实。然后,您可以使用chrome.identity
以这种方式使用OAuth。考虑到API是可计费的,这是次优的。
将秘密移至某个托管服务器。然后,您的扩展程序必须向服务器询问令牌(该令牌过期,此时需要从您的服务器重新请求)。这是唯一安全的方式。
Some APIs(不是Bing)提供了一种仅使用客户端ID进行身份验证的方法,了解JavaScript客户端无法保护秘密。这不是一个选项 - 您的代码假设生成令牌服务器端。