当前位置: 首页 > 知识库问答 >
问题:

基本HTTP授权头

华萧迟
2023-03-14

我想在客户端和节点上使用JQuery设置一个基本的HTTP身份验证。服务器端的js。我已在服务器端发出以下Ajax请求以设置头:

$.ajax({
        type: "GET",
        url: URL_SLACK_SERVER,
        dataType: "json",
        beforeSend: function(xhr){
            xhr.setRequestHeader("Authorization", "Basic " +btoa("username:xxx") );
        },
        success:function(rsp){
            filterMessages(rsp);
        }
    });

我希望使用基本身份验证模块在服务器端使用:

var express = require('express');
var bodyParser = require('body-parser');
var auth = require('basic-auth');

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Authorization, Accept, Key");
  var cre = +auth(req);
  console.log('Auth: ' +cre.username);
  next();
});

但是,这样做,我会遇到一些问题:

  1. 我看不到在飞行前选项HTTP请求中设置了标头:

选项/服务器HTTP/1.1
主机:服务器。com
连接:保持活动状态
访问控制请求方法:获取
来源:null
用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_11_1)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/47.0.2526.111 Safari/537.36
访问控制请求头:接受、授权
接受:/
接受编码:gzip、deflate、,sdch
接受语言:en-US,en;q=0.8,fr;q=0.6

飞行前响应中的访问控制允许标头不允许请求标头字段授权。

另外,请注意,从客户端到服务器的调用是跨域调用,这就是为什么在节点上会写入这些set头的原因。js文件。

如何有效地执行此基本HTTP身份验证?

共有2个答案

吕博耘
2023-03-14

是的,这是个问题。当您在npm中启用cors(查找cors模块并通过npm附加它)时,您可以设置允许的特定域。当您设置此项时,基本身份验证标头将与请求一起发送。看看这个请求:https://stackoverflow.com/a/18511690/3232739

微生德泽
2023-03-14

由于客户端和服务器运行在不同的域上,因此需要在服务器中配置CORS头以使其正常工作。

您需要在服务器中设置标头"Access-Control-允许-Origin:http://foo.example""Access-Control-允许-Origin:*"

 类似资料:
  • 我尝试通过在HTTP标头中发送凭据来对我的Spring应用程序进行身份验证(基本身份验证)。 我保护了,例如,资源 未经身份验证的用户被重定向到 现在,我向localhost:8080/app/home发送一个GET请求,其中包含HTTP标头中的编码凭据,如下所示: 我使用“高级Rest客户端”Chrome插件来发送请求,所以我非常确定标头已正确发送。但是服务器通过重定向到登录.jsp页面来回答。

  • 当构建一个不使用HTTP基本身份验证(但是像api-key这样的其他东西)并且客户机提供无效凭据的REST API时,您应该返回什么HTTP状态代码?401未经授权还是403禁止? IANA HTTP状态代码注册表将RFC7235第3.1节列为“401未经授权”的责任人,其中指出: HTTP 401响应必须始终包含一个WWW-Authenticate标头,该标头指示客户端如何进行身份验证。HTTP

  • 我正在尝试使用基本授权让WSMan工作。我总是遇到访问被拒绝的错误。Kerberos身份验证工作正常。 Windows远程管理服务正在域A的Windows Server 2008 R2上运行,并具有以下配置: 我正在域B中的Windows 7工作站上执行Test-WSMan: 并得到以下错误: 请注意,以下命令可以正常工作: 以下日志在Windows Server上显示: 有人能帮我解决这个问题吗

  • 我目前正在尝试设置一个对一个具有基本授权的REST API(Cloudsight)的POST请求。到目前为止我的代码是: null null 当我尝试并运行它时,我得到错误:Uncatted SyntaxError:无法对“XMLHttpRequest”执行“set requestHeader”:“authorization:”不是有效的HTTP头字段名。 有人知道代码出了什么问题吗?我对Java

  • 我正在尝试使用Reddit API(https://github.com/reddit-archive/reddit/wiki/OAuth2)在我的ASP。NET Core MVC应用程序,为了获得令牌,我必须使用HTTP基本授权(用户名和密码是客户端id和密码)对URI进行POST。目前我使用的代码是: 然而,这并没有使用授权。如何添加授权?我试图查看< code>HttpClient的文档。P

  • 我目前已经部署了一个swagger项目,但是我在添加一些基本的授权时遇到了麻烦。当你点击“试试看!”按钮,您需要登录帐户才能访问结果。我有一个帐户,我想在每次有人试图访问api时自动使用它。贝娄是我这个项目的index.html: 我正在尝试确定信息应该去往何处,以允许基本授权。我知道它涉及到下面几行代码,但是有人能向我解释得更详细一点吗?我意识到GitHub上的swagger文档不是很清晰或者很