Javascript Access_令牌在本地主机而不是服务器中工作
我在我的应用程序中使用以下代码来检查是否提供了一些头文件。这些代码在本地主机中运行良好,但在将应用程序部署到服务器时却无法运行。基本上,我试图检查请求中是否存在标题。在服务器上,我不断收到无效的请求。当我传递accesstoken而不是access_token时,请求将成功通过。因此,通过更改Javascript Access_令牌在本地主机而不是服务器中工作,javascript,node.js,hapijs,Javascript,Node.js,Hapijs,我在我的应用程序中使用以下代码来检查是否提供了一些头文件。这些代码在本地主机中运行良好,但在将应用程序部署到服务器时却无法运行。基本上,我试图检查请求中是否存在标题。在服务器上,我不断收到无效的请求。当我传递accesstoken而不是access_token时,请求将成功通过。因此,通过更改if((request.headers.access_-token&&request.headers.refresh_-token&&request.headers.id_-token)| request.
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头
如果未在上的\u标题中显式设置下划线\u;,NGINX将无声地删除带有下划线的HTTP头(根据HTTP标准,下划线是完全有效的)。这样做是为了防止在将标题映射到CGI变量时出现歧义,因为在此过程中,虚线和下划线都映射到下划线。
我们必须在NGINX中的\u头上显式加下划线,否则它们将被忽略您在服务器上安装的npm,对吗?什么是
服务器
?请包括require
语句。您需要提供一个在本地主机上工作但不在服务器上工作的请求(带有标题)示例。const Hapi=require('Hapi');const Path=require('Path');const build=require('../build.json');var jwtDecode=require('jwt-decode');恒臂=需要(“臂”);const axios=require('axios');var querystring=require('querystring');var记录器=要求('./车队api/记录器');它是一个简单的GET请求,包含Headers,即运行相同版本节点的服务器