我正在为我们的API构建JavaScript SDK。 API目前需要(两条腿)OAuth身份验证。显然这不适合JS SDK,因为密钥和秘密都在普通站点(在JS代码中)。
Facebook在启动他们的JS SDK时只需要你的app id,所以我想实现类似的东西(或类似的简单)。当开发人员请求密钥时,我们需要他们的应用程序域。我在考虑检测提交域的IP地址(例如myclientapp.com有192.168.0.0 IP)。然后通过确认远程主机IP地址匹配来验证JavaScript请求。
这是最好/最简单的方法吗?
更新:由于Rup指出远程IP将是客户端,因此与应用URL的IP不匹配。所以那就是了。所以重申我正在寻找一种解决方案,允许我在我的JavaScript sdk中为我的API强制执行某种形式的身份验证,这种身份验证不会被其他人欺骗(试图成为别人的应用程序)。
谢谢,
加文
答案 0 :(得分:1)
改为对用户进行身份验证。
将(声明的,但不值得信任的)应用ID传递到您的init()
,jsonp到您的域,然后:
您可以在身份验证期间控制用户体验,并可以对应用ID进行人工验证(显示声明的徽标,名称等)。
这确实假设你甚至拥有用户的概念,就像Facebook一样。
*检查cookie,并非所有浏览器都接受它们以响应ajax请求;但是所有浏览器都会发送它们。