我有一个简单的问题,可能点出一个复杂的答案:(调用从jQuery的我的网页API安全
我有一个Web API,它工作得很好,但现在我想建立认证/授权。 我需要它在所有平台上工作,但主要是从jQuery的自然,我不想把我的管道沿线用户名和密码以明文形式是这样的:
function GetAllCategories() {
var credentials = $.base64.encode('r3plica:mypassword');
var authType = "Basic " + credentials;
$.ajax({
url: "http://localhost:18904/api/Categories",
type: "GET",
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", authType);
},
success: function (data) {
alert('Success!');
},
error: function() {
alert('error');
}
});
}
,所以我一直在寻找其他替代品。 是使用3段OAuth的唯一选择吗?我希望只传递一个查询字符串键/值到我的api,让它处理所有事情,但我无法一步步找到这样做的过程。 一切似乎都很复杂。
那么,有没有人知道我能做什么?我已阅读加载并试图实现大量内容。
我设法得到这个工作:http://codebetter.com/johnvpetersen/2012/04/04/moving-from-action-filters-to-message-handlers/ 从我虽然可以告诉,你需要使用你的公钥发送到API之前加密您的字符串(用户名),然后API将解密使用私钥和授权你。
所以我的2个问题很简单:)
- 你可以用上面的链接,并从jQuery的轻松调用(即不使用第三方库)
- 如果没有,什么是最好的方式去关于保护我的API,使其可以直接从jQuery.ajax调用中调用?
只是为了澄清,我使用SSL的API提前
干杯,
/r3plica
因此,您是说客户端将始终使用服务器端逻辑?我知道每个请求上的令牌更改,因此嗅探它并不好,但会不会有客户端不使用服务器端代码的情况? – r3plica 2013-05-09 18:46:54
如果您使用SSL连接,则“嗅探”问题已过时。它适用于用户可以简单查看html源代码的情况。客户端不使用Serverside代码的情况例如是使用PhoneGap编译的智能手机Web应用程序。但是,您可以将身份验证数据存储在localStorage或其他内容中。 – take 2013-05-09 18:51:51
如何验证我的web api中的'genToken()',然后在我的Web API中进行验证? – Si8 2017-01-26 14:27:05