Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用JWT令牌在Heroku上部署的应用程序中的授权_Node.js_Heroku_Authorization_Jwt Auth - Fatal编程技术网

Node.js 使用JWT令牌在Heroku上部署的应用程序中的授权

Node.js 使用JWT令牌在Heroku上部署的应用程序中的授权,node.js,heroku,authorization,jwt-auth,Node.js,Heroku,Authorization,Jwt Auth,在完成后端部分和应用程序测试之后,我尝试在Heroku服务器上运行它。本地注册和接收所有邮件都有效。 在Heroku服务器上,将成功的注册令牌发送到客户端后,只有注册才起作用。为了接收消息,客户端向请求主体添加一个令牌。 服务器答复我未被授权: 2019-09-24T08:22:02.047721+00:00 heroku[router]: at=info method=GET path="/api/messages" host=warbler-server-md.herokuapp.com

在完成后端部分和应用程序测试之后,我尝试在Heroku服务器上运行它。本地注册和接收所有邮件都有效。

在Heroku服务器上,将成功的注册令牌发送到客户端后,只有注册才起作用。为了接收消息,客户端向请求主体添加一个令牌。 服务器答复我未被授权:

2019-09-24T08:22:02.047721+00:00 heroku[router]: at=info method=GET path="/api/messages" host=warbler-server-md.herokuapp.com request_id=849b48c9-caa9-4e7c-b38c-b614988b88e4 fwd="178.159.232.145,3.88.204.168" dyno=web.1 connect=1ms service=2ms status=401 bytes=293 protocol=https
最可能的问题是令牌身份验证:

exports.ensurecorrecutser=函数(req、res、next){
试一试{
const token=req.headers.authorization.split(“”)[1];
jwt.verify(令牌、process.env.SECRET_密钥、函数(错误、解码){
日志(“令牌”,令牌);
控制台日志(“已解码”,已解码);
if(解码和解码的id==req.params.id){
返回next();
}否则{
控制台日志(err);
下一个返回({
状况:401,
信息:“未经授权”
});
}
});
}捕获(错误){
console.log('Unauthorized!');
下一个({
状况:401,
信息:“未经授权”
});
}
};
在我看来,这段代码根本没有启动,因为我添加的消息没有显示在控制台中


授权有什么问题?

您在heroku上设置了
process.env.SECRET\u密钥吗?
变量吗?是:===warbler server md Config Vars SECRET\u密钥:fhudaskjfhajskldhfri3hf3829cah9fhjdkhdskjfhsk