javascript - 休息API : user-agent-based client (app) authorization

标签 javascript api rest authentication flask

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

  • 数据库 API
  • 和基本的网络客户端(Flask)以及一些用于交互的 JS 代码(Knockout.js) “即时”过滤产品、购物车等功能。

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

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

但是我应该如何使用 secret 在用户浏览器内生成 HMAC 并且不将 secret 暴露给其他人?据我了解,如果我的 JS 代码可以访问 secret ,那么互联网上的任何人都可以访问,对吗?

最佳答案

JavaScript 应用程序就是所谓的 'public clients'在 OAuth 2.0 中。这基本上意味着他们无法保守 secret ,因此您无法进行客户端(应用程序)授权。

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

关于javascript - 休息API : user-agent-based client (app) authorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34995186/

相关文章:

php - 如何 : Displayed image file name different than actual filename on server

javascript - Three.js - 来自 Math.Plane 的 PlaneGeometry

css - 2个并排动态加载的div

WCF ASP.NET 路由集成功能需要 ASP.NET 兼容性

javascript - 我怎样才能去除文本区域的内容?

javascript - 如何循环遍历嵌套数组并为每个级别插入 id 和parentId?

rest - 使用 REST API 更新嵌套对象

c# - 如何在 C# 的 visual studio 中安装 SAPI?

java - 请求并使用身份验证访问 token

rest - 基于浏览器的 REST api 身份验证