REST API:基于用户代理的客户端(app)授权

时间:2016-01-25 14:38:39

标签: javascript api rest authentication flask

我有两个独立的网络应用程序:

  • 数据库API
  • 和基本的web-client(Flask),带有一些用于交互的JS代码(Knockout.js) 过滤产品'即时',购物车等
  • 等功能

要通过API实现交互式答案,我使用在用户浏览器中运行的JavaScript请求。我想控制对API的访问,并仅将其提供给授权的web应用程序,例如,我自己的客户端JS代码。

我读到了HMAC和Oauth。关键点:例如,服务器和客户端共享用于生成HMAC的相同秘密。

但是我应该如何使用秘密在用户的浏览器中生成HMAC而不将秘密泄露给他人?据我了解,如果我的JS代码可以访问一个秘密,那么互联网上的任何人都可以访问,对吗?

1 个答案:

答案 0 :(得分:1)

JavaScript应用程序是OAuth 2.0中的'public clients'。这基本上意味着他们无法保守秘密,因此你不能做客户(申请)授权。

因此,如果您使用JavaScript应用程序与API通信,则需要进行用户身份验证并授予用户访问API的权限。或者切换到服务器端应用程序以访问您的API。