【问题标题】:TypeError: jwt.sign is not a function类型错误:jwt.sign 不是函数
【发布时间】:2016-07-17 21:34:36
【问题描述】:

我包括快递等包括:

var expressJwt = require('express-jwt'); //https://npmjs.org/package/express-jwt
var secret = 'this is the secret secret secret 12356';
var jwt = require('jsonwebtoken');  //https://npmjs.org/package/node-jsonwebtoken

然后定义我的续集模型和结语路线并将其放置在这里:

app.post('/authenticate', function (req, res) {
  //TODO validate req.body.username and req.body.password
  //if is invalid, return 401
  if (!(req.body.username === 'john.doe' && req.body.password === 'foobar')) {
    res.status(401).send('Wrong user or password');
    return;
  }

  var profile = {
    first_name: 'John',
    last_name: 'Doe',
    email: 'john@doe.com',
    id: 123
  };

  // We are sending the profile inside the token
  var token = jwt.sign(profile, secret, { expiresInMinutes: 60*5 });

  res.json({ token: token });
});

当我在表单中输入 john.doe 和 foobar 时,控制台告诉我 jwt.sign 不是函数,即使在 npm 安装之后也是如此。

【问题讨论】:

    标签: javascript node.js jwt


    【解决方案1】:

    jsonwebtoken 仅用于在 express.js requests 上验证/解码 jwts。

    如果需要对请求进行签名,则需要使用 node-jsonwebtoken:

    https://github.com/auth0/node-jsonwebtoken

    GH问题:

    https://github.com/auth0/express-jwt/issues/48

    这是一篇关于您正在尝试做的事情的精彩博文:

    https://matoski.com/article/jwt-express-node-mongoose/

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 2016-02-26
      • 2013-04-01
      • 2016-03-06
      • 2018-04-28
      • 2019-02-14
      • 2021-10-02
      • 2021-10-30
      相关资源
      最近更新 更多