最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

JWT令牌不会产生在Heroku

运维笔记admin9浏览0评论

JWT令牌不会产生在Heroku

JWT令牌不会产生在Heroku

这是超级怪异。我在本地主机上运行我的Node.js应用程序时,一切工作。但部署到Heroku上后,它总是给我400错误的请求和响应空白身体{}。我有同样的要求邮递员只改变基本URL测试两种环境。

这里是我的岗位方法:

app.post('/users', (req, res) => {
var body = _.pick(req.body, ['email', 'password', 'f_name', 'l_name', 'phone', 'address']);
var user = new User(body);

user.save().then(() => {
  return user.generateAuthToken();
}).then((token) => {
  res.header('x-auth', token).send(user);
}).catch((err) => {
  res.status(400).send(err);
});
});

最后,我看到了,每当我试图张贴新用户时创建一个道理,我的本地数据库的工作,但没有令牌在Heroku的环境中创建。

这意味着这个功能是最可疑的是:

UserSchema.methods.generateAuthToken = function () {
var user = this;
var access = 'auth';
var token = jwt.sign({_id: user._id.toHexString(), access}, process.env.JWT_SECRET).toString();

user.tokens = user.tokens.concat([{access, token}]);

return user.save().then(() => {
    return token;
}).catch((err) => {
    return err;
});
};

我不明白的是,为什么会做出这样的部署环境有什么区别?怎么我会永远知道自己错在哪里里面的Heroku?当运行在本地,我们通常会得到这些错误日志,日志的Heroku没有什么好处。虽然我试图捕获错误并回报他们,再没回来我的邮递员响应体。

谢谢你的帮助!

回答如下:

你检查,如果内Heroku的设置环境变量是否被正确接收和解析?我注意到,我的部署,我在那里使用RSA加密对我的秘密,新的行字符没有被认可。

本地

-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz7pZEypvrFJCDshsbOam\nj9bmy/dXnUOyCo5b3xSvvTNIoFAC5ePXozCD/5Byih1JB6ZYE6OceEW6oArkPzZO\nl8bFBlqV9k30oerMtVei18+CfF/uFLWlJXs9FvXrRTKtsL43OmpLCH3LdzK9/+Zq\nhEx/TShp3JudUWuRW8ALqrBd8QW5CWJHYozYVaIpFzwJ9KW6fJ9GpZfcToCOquLW\no8iINnAovXmvcAtdmzgIqoucD988f9oerll/CubJLy2rOiyeRvsAYouoefoyQZWN\n8IYPlnb5IB6Z7qnVL6rZz44dAjVwS3uARW3lxpfeZn3TN7wpPkBssGBF0OSEHNrX\nVwIDAQAB\n-----END PUBLIC KEY-----

将被记录为

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz7pZEypvrFJCDshsbOam
j9bmy/dXnUOyCo5b3xSvvTNIoFAC5ePXozCD/5Byih1JB6ZYE6OceEW6oArkPzZO
l8bFBlqV9k30oerMtVei18+CfF/uFLWlJXs9FvXrRTKtsL43OmpLCH3LdzK9/+Zq
hEx/TShp3JudUWuRW8ALqrBd8QW5CWJHYozYVaIpFzwJ9KW6fJ9GpZfcToCOquLW
o8iINnAovXmvcAtdmzgIqoucD988f9oerll/CubJLy2rOiyeRvsAYouoefoyQZWN
8IYPlnb5IB6Z7qnVL6rZz44dAjVwS3uARW3lxpfeZn3TN7wpPkBssGBF0OSEHNrX
VwIDAQAB
-----END PUBLIC KEY-----

但在Heroku将它准确地记录为我提供了 - 一切都出现在同一行,包括新行字符。设置有明确的格式我的Heroku的环境变量似乎解决我的问题签署。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论