我正在编写Web Api(使用asp.net Web Api),并且自然希望客户端进行身份验证以使用该服务。
我希望编写一个Javascript插件,该插件可以使用Api,然后可以将其放到其他网站中。
我可以通过安全的方式对插件进行身份验证吗? 我不确定如何将传递给插件的任何信息保密。
我还希望本机应用程序可以使用API,这样可以规定任何使用Cookie的内容吗?
由于
答案 0 :(得分:3)
我可以通过安全的方式对插件进行身份验证吗?
您必须在插件中嵌入用户名/密码,或者使用一些字段从用户那里获取该信息。
如果您选择嵌入用户名/密码,请考虑一些代码:
$.ajax({
url: 'api/foo',
type: 'GET',
dataType: 'json',
success: onSuccess,
error: onError,
beforeSend: setHeader
});
请注意将beforeSend
分配给setHeader
:
function setHeader(xhr) {
xhr.setRequestHeader('Authorization', 'Basic YXBpX3VzZXIxOjEyMzQxMjM0');
}
注意,您必须使用以下方法预先计算身份验证字符串
现在,如果您想从用户那里提取用户名/密码,您可以这样做:
function setHeader(xhr) {
xhr.setRequestHeader('Authorization', make_base_auth($("#username").val(), $("#password").val()));
}
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = Base64.encode(tok);
return "Basic " + hash;
}