REST API:基于用户代理的客户端(应用)授权
REST API: user-agent-based client (app) authorization
我有两个独立的网络应用程序:
- 数据库接口
- 和基本的Web客户端(Flask),带有一些JS代码(Knockout.js)用于交互式"即时"过滤产品、购物车等功能。
为了通过API实现交互式答案,我使用在用户浏览器中运行的JavaScript请求。我想控制对 API 的访问,并仅将其提供给授权的 Web 应用程序,例如,我自己的客户端 JS 代码。
我读到了HMAC和Oauth。关键点:例如,服务器和客户端共享用于生成 HMAC 的相同密钥。
但是,我应该如何使用密钥在用户的浏览器中生成 HMAC,而不将密钥暴露给其他人?据我了解,如果我的JS代码可以访问秘密,那么互联网上的任何人都可以访问该密钥,对吧?
JavaScript应用程序在OAuth 2.0中被称为"公共客户端"。这基本上意味着他们不能保守秘密,因此你不能做客户端(应用程序)授权。
因此,如果您使用 JavaScript 应用程序与您的 API 通信,则需要进行用户身份验证并授予用户对您的 API 的访问权限。或者切换到服务器端应用程序以访问您的 API。
相关文章:
- 在客户端应用程序中按角色筛选UI的策略
- 如何在基于API的多页客户端应用程序中组织路由
- 简单客户端应用程序中的文件处理
- 可以't从客户端应用程序引用插件中定义的静态方法
- webpack的库和客户端应用程序配置
- 您是否需要将 API 密钥用于客户端应用程序的谷歌地图 API
- 是否有任何Office Apps javascript API可以在客户端应用程序中打开SharePoint Word文
- 从客户端应用程序使用门守进行身份验证,而无需传输机密
- 如何在纯 HTML5 客户端应用程序上不公开应用机密和密钥
- 如何在响应 Angular 客户端应用时发送 API 密钥
- 如何从客户端应用程序加载融合表 csv
- REST API:基于用户代理的客户端(应用)授权
- Node.JS 模拟 1000/+ 客户端连接的客户端应用
- 组织一个中等大小的javascript客户端应用程序的代码进行测试
- 客户端应用程序的全局可变状态
- 使用JS框架开发数据库客户端应用程序
- 如何从客户端应用程序(Dash.js)向OpenFlow Switch发送消息
- SignalR客户端应用程序在VS2008中运行时无法连接
- 跨浏览器,用于客户端应用程序的对象持久性库
- JavaScript客户端应用中的权限/ACL