我有两个独立的网络应用程序:
要通过API实现交互式答案,我使用在用户浏览器中运行的JavaScript请求。我想控制对API的访问,并仅将其提供给授权的web应用程序,例如,我自己的客户端JS代码。
我读到了HMAC和Oauth。关键点:例如,服务器和客户端共享用于生成HMAC的相同秘密。
但是我应该如何使用秘密在用户的浏览器中生成HMAC而不将秘密泄露给他人?据我了解,如果我的JS代码可以访问一个秘密,那么互联网上的任何人都可以访问,对吗?
答案 0 :(得分:1)
JavaScript应用程序是OAuth 2.0中的'public clients'。这基本上意味着他们无法保守秘密,因此你不能做客户(申请)授权。
因此,如果您使用JavaScript应用程序与API通信,则需要进行用户身份验证并授予用户访问API的权限。或者切换到服务器端应用程序以访问您的API。