gpt4 book ai didi

javascript - Access_token 在本地主机中工作,而不在服务器中工作

转载 作者:行者123 更新时间:2023-12-03 05:16:59 25 4
gpt4 key购买 nike

我在我的应用程序中使用以下代码来检查是否提供了某些 header 。该代码在本地主机中工作正常,但在应用程序部署到服务器时则不然。基本上我想检查请求中是否存在 header 。在服务器上,我不断收到无效请求。当我传递 accesstoken 而不是 access_token 时,请求成功完成。所以通过改变 if ((request.headers.access_token && request.headers.refresh_token && request.headers.id_token) || request.headers.token)

代码有效,我的问题是为什么会发生这种情况

const Hapi = require('hapi');
const Path = require('path');
const axios = require('axios');

var tokenValidation = function (request, reply) {


if ((request.headers.access_token && request.headers.refresh_token && request.headers.id_token) || request.headers.token) {

if (request.headers.access_token != undefined) {
//do something
}
else {
return reply.continue();
}

} else
return reply.continue();
}
else {
var err = Boom.badRequest(‘Invalid request.');
reply(err);
}
}

server.ext('onRequest', tokenValidation);

最佳答案

丢失(消失)HTTP header 如果你没有显式地设置 underscores_in_headers on;,NGINX 将默默地删除带有下划线的 HTTP header (根据 HTTP 标准,这是完全有效的)。这样做是为了防止将 header 映射到 CGI 变量时出现歧义,因为在此过程中破折号和下划线都映射到下划线。

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#missing--28disappearing-29-http-headers

我们必须在 NGINX 中显式地使用 underscores_in_headers ,否则它们将被忽略

关于javascript - Access_token 在本地主机中工作,而不在服务器中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557926/

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