所以我有一个基于nodejs框架构建的web应用程序。目前,我正在使用NGINX反向代理,该代理使用OIDC进行身份验证。一旦用户通过身份验证,它就会将它们转发到nodejs后端。
我想从标题中获取用户的电子邮件地址,该地址从反向代理传递到后端,并将其打印在我的主页上,这样它就会显示"欢迎XXX ">
现在我可以看到,如果我在我的app.js中添加以下内容,它会将标题打印到命令行,这样我就知道它正在被传递,但我只是不知道我需要什么javascript来实现这个
app.get('/home', function (req) {
console.log(req.headers);
});
此处的示例访问网页';s JavaScript中的HTTP标头确实向我显示了一个弹出窗口,但它没有抓取显示我需要的信息,即"x-user":'fffffff@ffff.fff'
我也试过这个代码,但它不适合我
<script>
function getClientIP(req){
return req.headers['x-user'];
}
</script>
<h3><b><script>getClientIP();</script></b></h3>
我把这个打印到console.log中,这样我就知道请求中有x用户。
算出
<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>