我有一个简单的问题,可能会指出一个复杂的答案:(
我有一个运行良好的网络 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/ http://codebetter.com/johnvpetersen/2012/04/04/moving-from-action-filters-to-message-handlers/据我所知,您需要在使用公钥发送到 api 之前对字符串(用户名)进行加密,然后 api 将使用私钥解密并授权您。
所以我的两个问题很简单:)
- 您可以使用上面的链接并轻松地从 jQuery 调用吗(即不使用第 3 方库)
- 如果不是,那么保护我的 API 以便可以直接从 jQuery.ajax 调用中调用它的最佳方法是什么?
澄清一下,我在 API 中使用 SSL
提前欢呼,
/r3plica
对于网站(用户可以查看源代码),我们通过 PHP 生成身份验证令牌并将其放入 JavaScript 中。每次页面重新加载时,令牌都会更改。
例如:
<script type="text/javascript">var authToken = '<?=genToken();?>'</script>
[...]
$.ajax( [..]
beforeSend: function (xhr) {
xhr.setRequestHeader("ownToken", authToken);
},
并检查令牌服务器端。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)