我正在编写一个 Web Api(使用 asp.net Web Api),并且自然希望客户端进行身份验证以使用该服务。
我希望编写一个使用 Api 的 Javascript 插件,然后将其简单地放入其他网站。
有没有一种安全的方法可以让插件进行身份验证?我不确定如何对传递给插件的任何信息保密。
我还希望原生应用程序使用 API,那么这是否规定了使用 cookie 的任何内容?
谢谢
我正在编写一个 Web Api(使用 asp.net Web Api),并且自然希望客户端进行身份验证以使用该服务。
我希望编写一个使用 Api 的 Javascript 插件,然后将其简单地放入其他网站。
有没有一种安全的方法可以让插件进行身份验证?我不确定如何对传递给插件的任何信息保密。
我还希望原生应用程序使用 API,那么这是否规定了使用 cookie 的任何内容?
谢谢
有没有一种安全的方法可以让插件进行身份验证?
您将不得不在插件中嵌入用户名/密码,或者有一些字段来从用户那里获取该信息。
如果您选择嵌入用户名/密码,请考虑一些代码:
$.ajax({
url: 'api/foo',
type: 'GET',
dataType: 'json',
success: onSuccess,
error: onError,
beforeSend: setHeader
});
注意beforeSend
to的分配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;
}