如何在AJAX请求中隐藏api密钥
问题描述:
我想直接在桌面上完成客户端的ajax请求。如何在AJAX请求中隐藏api密钥
问题是我的ajax请求需要一个“secret api Key”。我不希望客户端有权访问此api密钥。
这里我目前的js代码:
var url = 'myurl';
var obj = new Object();
obj.api_key = "myKeyIwantToHide";
$.ajax({ url: url,
type: 'post',
dataType: 'json',
data: obj,
cache: false,
success: function(result){
alert(result);
}
});
有可能隐藏在订单信息与JavaScript客户端来完成我的Ajax请求。
THX, 克里斯托夫
答
您不能从客户端完全隐藏API密钥。但是,如果你的客户是非技术性的。你可以让他/她难以找到API密钥。如果您使用的是MVC,则可以在将第一个请求发送到Index方法时设置API密钥,并在返回时将其设置为JavaScript变量。通过这种方式,用户将无法看到硬编码的值,与您所显示的代码不同。如果您使用的是ASP.NET,那么您可以使用ViewBag轻松使用Razor语法将值设置为javascript变量。
+0
假设像“但如果你的客户是非技术性的”。编程时有一种不好的做法... –
您无法在JavaScript客户端中隐藏任何内容。 – Roberrrt
如果发送给客户端,则客户端可以访问。如果您需要保留密钥,您必须在自己的服务器上创建代理。 – Pointy
如果您有服务器的控制权,您应该使用JWT进行身份验证。 – Baruch