首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS API鉴权

JS API鉴权
EN

Stack Overflow用户
提问于 2012-04-30 07:59:07
回答 1查看 188关注 0票数 1

我会试着解释这个问题。

有一些服务,它的API完全建立在JS (ajax/json)为网站合作伙伴。Site-partner是一个人,他与服务有一些合同。因此,对API的访问确实只有某些人(站点-合作伙伴)。我要做的是创建一些授权方式,让服务找出真正来自站点合作伙伴的请求。

复杂之处在于API完全是用JS编写的。这就是为什么HTTP身份验证、秘密API密钥和RSA密钥交换都不适合这种类型的API的原因,因为服务需要一些身份验证参数来接收,而唯一的方法是使用JSON格式通过AJAX传递它们。因此,每个知道如何查看页面源代码的人,都可以简单地复制这些参数,并以他们想要的方式使用它们。

带有IP限制的变体也不适合,至少因为站点合作伙伴可以在共享主机上托管。

我想使用一些API密钥和一些不清楚的散列(仅对服务清除)+时间戳。但这种方法迟早会变得清晰。

无论如何,脑海中浮现的一切并不完全适合。也许有人遇到过这个问题?感谢您的回复。

EN

回答 1

Stack Overflow用户

发布于 2012-04-30 08:08:02

JSON,因为服务需要一些身份验证参数来接收,而唯一的方法就是使用

格式通过AJAX传递它们。

我认为你误解了JSON和JavaScript之间的区别。JSON是一种类似于XML或SOAP的数据格式。你不需要使用JavaScript来阅读它。PHP、Ruby、Java、Python和其他语言对JSON有很好的支持。通常,JSON是通过HTTP传递的。

所以,每个人,谁知道如何查看页面的源代码,可以简单地复制这些参数,并以他们想要的方式使用它们。

如果你的服务提供商要求你使用某种类型的密钥,我真的怀疑他们是否想让你在浏览器中这样做。由于跨域限制,你可能甚至不被允许发出请求(大多数浏览器都不允许你发出请求(尤其是POST),请求的域名不是你所请求的域名)。

我的猜测是,您将需要在服务器端与您的提供者一起进行处理。如果您的提供商有文档,我会参考它。否则,看看是否可以让他们的开发人员来帮助您。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10377085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档