2

我正在编写一个 Web Api(使用 asp.net Web Api),并且自然希望客户端进行身份验证以使用该服务。

我希望编写一个使用 Api 的 Javascript 插件,然后将其简单地放入其他网站。

有没有一种安全的方法可以让插件进行身份验证?我不确定如何对传递给插件的任何信息保密。

我还希望原生应用程序使用 API,那么这是否规定了使用 cookie 的任何内容?

谢谢

4

1 回答 1

4

有没有一种安全的方法可以让插件进行身份验证?

您将不得不在插件中嵌入用户名/密码,或者有一些字段来从用户那里获取该信息。

如果您选择嵌入用户名/密码,请考虑一些代码:

$.ajax({
        url: 'api/foo',
        type: 'GET',
        dataType: 'json',
        success: onSuccess,
        error: onError,
        beforeSend: setHeader
    });

注意beforeSendto的分配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;
}
于 2013-01-16T22:18:12.663 回答