护照,在网址中传递JWT-如何调试?

时间:2019-10-29 12:32:54

标签: express jwt passport.js

我正在尝试使用Passport和passport-jwt策略设置电子邮件确认。我有一条看起来像这样的路线:

router.route('/confirmation/token=:token')
    .post((req, res, next) => {
        console.log(req.params)
        next();
    }, passport.authenticate('emailconfirm', {session: false}), usersController.confirmation)

然后我的护照策略如下:

passport.use(
  "emailconfirm",
  new JwtStrategy(
    {
      jwtFromRequest: ExtractJwt.fromUrlQueryParameter("token"),
      secretOrKey: process.env.EMAIL_SECRET,
      passReqToCallback: true
    },
    async (req, payload, done) => {
      try {
        const user = await User.findById(payload.sub);

        if (!user) {
          return done(null, false);
        }

        done(null, user);
      } catch (error) {
        done(error, false);
      }
    }
  )
);

当用户注册时,将生成令牌,该令牌会在指向其电子邮件的链接中发送。用户单击链接,然后将其带到前端的确认路由,该路由会调用API。

我的问题是护照只是在退回401错误,而我却无法找出原因。如果我将任何控制台日志放在护照的异步回调中,都不会被调用。如果以前进行过身份验证的人可以帮助您,那将是很好的。谢谢。

0 个答案:

没有答案