打印网页';使用JavaScript创建HTTP头
因此,我有一个基于nodejs框架构建的webapp。目前,我正在使用一个使用OIDC进行身份验证的NGINX反向代理。一旦用户通过身份验证,它就会将其转发到nodejs后端 我想从从反向代理传递到后端的标题中获取用户的电子邮件地址,并将其打印在我的主页上,这样它就会说欢迎XXX 现在我可以看到,如果我在app.js中添加以下内容,它会将标题打印到命令行,这样我就知道它正在被传递,但我不知道实现这一点需要什么javascript打印网页';使用JavaScript创建HTTP头,javascript,nginx,header,html-helper,Javascript,Nginx,Header,Html Helper,因此,我有一个基于nodejs框架构建的webapp。目前,我正在使用一个使用OIDC进行身份验证的NGINX反向代理。一旦用户通过身份验证,它就会将其转发到nodejs后端 我想从从反向代理传递到后端的标题中获取用户的电子邮件地址,并将其打印在我的主页上,这样它就会说欢迎XXX 现在我可以看到,如果我在app.js中添加以下内容,它会将标题打印到命令行,这样我就知道它正在被传递,但我不知道实现这一点需要什么javascript app.get('/home', function (req) {
app.get('/home', function (req) {
console.log(req.headers);
});
这里的示例确实为我提供了一个弹出窗口,但它没有显示我需要的信息,即“x用户”:fffffff@ffff.fff"
我也尝试过这个代码,但它没有为我拿起它
<script>
function getClientIP(req){
return req.headers['x-user'];
}
</script>
<h3><b><script>getClientIP();</script></b></h3>
函数getClientIP(请求){
返回请求头['x-user'];
}
getClientIP();
我已将此打印到console.log,因此我知道x-user在请求中存在。已解决此问题
<script>
function parseHttpHeaders(httpHeaders) {
return httpHeaders.split("\n")
.map(x=>x.split(/: */,2))
.filter(x=>x[0])
.reduce((ac, x)=>{ac[x[0]] = x[1];return ac;}, {});
}
var req = new XMLHttpRequest();
req.open('HEAD', document.location, false);
req.send(null);
var headers = parseHttpHeaders(req.getAllResponseHeaders());
</script>
<script>
function here() {
document.write(JSON.stringify(headers["x-user"]));
}
</script>
<h3><b><script>here();</script></b></h3>
函数parseHttpHeaders(httpHeaders){
返回httpHeaders.split(“\n”)
.map(x=>x.split(/:*/,2))
.filter(x=>x[0])
.reduce((ac,x)=>{ac[x[0]]=x[1];返回ac;},{});
}
var req=新的XMLHttpRequest();
请求打开('HEAD',document.location,false);
请求发送(空);
var headers=parseHttpHeaders(req.getAllResponseHeaders());
函数here(){
document.write(JSON.stringify(headers[“x-user”]);
}
这里();
该示例的可能副本确实向我显示了一个弹出窗口,但它没有显示我需要的信息,即“x用户”:fffffff@ffff.fff'