繁体   English   中英

第三方API服务-网络安全和AJAX

[英]3rd party API service - web security and AJAX

我正在尝试创建一个Web应用程序,该应用程序将具有从Twitter检索第三方数据的组件。 假设我已经在Twitter上注册了我的应用程序并拥有一个令牌:

  1. 是将令牌存储在服务器端代码上的首选位置(我的后端使用Node / Express)吗? 另一种方法是将其存储在我的客户端代码上,但这似乎非常危险,因为每个人都可以检查我的代码。

  2. 假设我确实将令牌存储在服务器端,这是否意味着如果我要对第三方API(即Twitter)进行AJAX调用,请求的流程将是从客户端到服务器,然后是服务器到第三派对网络服务?

  3. 如果上述情况是正确的,那么我的服务器端代码将必须包含一些异步回调/诺言逻辑,以便一旦从第三方Web服务准备好数据后,服务器将执行我的回调以将数据发送回客户端侧?

该答案假定您使用Twitter的“仅应用程序身份验证”代表应用程序本身( https://dev.twitter.com/oauth/application-only )发出API请求。

  1. 服务器端代码是存储您不想公开的任何API密钥的首选位置。 Twitter的开发人员指南指出:“这些值应被视为与密码一样敏感,并且不得共享或分发给不受信任的各方。”

  2. 是的,使用像Twitter的“仅应用程序身份验证”这样的身份验证模型将要求通过您的服务器端代码代理所有第三方API请求,以保护API令牌。 对于需要随每个请求传递一个简单的静态API密钥的任何第三方API而言,情况也是如此。

  3. 尽管从技术上可能不是必需的,但是在发出第三方API请求时最好在服务器端使用异步操作。 这将为您提供一个更强大的体系结构,以应对Internet请求的不稳定,这是一个好处。

如果您打算代表网站访问者阅读或发布Twitter数据,请确保阅读有关获取与Twitter一起使用的访问令牌的其他方法的更多信息: https : //dev.twitter.com/oauth/overview 例如,“三足授权”方法更适合此情况,因为它为最终用户提供了一种安全的方式,以供最终用户提供其Twitter凭据并授权请求的应用程序使用其数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM