gpt4 book ai didi

jQuery HTTP 身份验证

转载 作者:行者123 更新时间:2023-12-03 22:41:24 25 4
gpt4 key购买 nike

使用 jQuery,我正在调用 Version One Rest API并且需要在 HTTP header 中验证用户身份。

我试过了

$.ajax({
dataType: "jsonp",
beforeSend: function(xhr){
xhr.setRequestHeader("Authorization", "Basic xyz"); // xyz usr:pwd Base64 encoded
},
url: "https://www10.v1host.com/.../VersionOne/rest-1.v1/...",
success: function(data, status, xhr) {
alert("Load was performed.");
}
});

$.ajax({
dataType: "jsonp",
username:"usr",
password:"pwd",
url: "https://www10.v1host.com/.../VersionOne/rest-1.v1/...",
success: function(data, status, xhr) {
alert("Load was performed.");
}
});

但我总是会弹出询问我的凭据的窗口(我使用 Chrome)。即使我在弹出窗口中输入凭据,我也没有经过身份验证,并且该窗口仍然显示。

  1. 如何在 HTTP header 中使用 jQuery 对用户进行身份验证?
  2. 有什么方法可以让加密的密码属性不可见吗?或者Base64是唯一的方法。我只想通过一个帐户访问服务器,但不希望客户端的用户看到密码(或在 JavaScript 中找到它)。

最佳答案

这并非完全不可能,只是有点尴尬。您可以通过您自己的服务器代理所有 AJAX,如下所示:

  • 您的 JavaScript 通过 AJAX 与您的服务器联系。
  • 您的服务器使用适当的基本身份验证 header (或无论您需要使用什么身份验证)。
  • 您的服务器将响应发送回您的脚本,与 www10.v1host.com 将响应发送到您的服务器的方式完全相同。

这样,密码在服务器上保持不可见并在您的控制之下,并且客户端代码获得与 www10.v1host.com 相同的 API。这种方法可能会带来一点滞后,但这应该是可以管理的。

当然,您仍然需要考虑浏览器和服务器之间的授权过程,但您应该能够使用您已经拥有的任何授权(可能是 cookie 和普通的旧登录名)。

您还需要根据 API 服务条款检查此技术,以确保您玩得很好。

关于jQuery HTTP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4620783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com