如何使用Angular JS和JWT验证用户?

时间:2016-10-24 12:22:51

标签: javascript angularjs node.js jwt

我目前正致力于注册模块。我可以使用表格注册。我使用Angular JS作为前端,使用Nodejs作为后端服务。我调用API,因此它被注册。注册后,用户会收到验证邮件,点击该按钮后,用户应该会成功验证。

我已经完成了直到发送邮件,但点击了“验证”按钮后在邮件中它直接登陆登录页面而不进行验证。我想验证用户并将令牌发送到验证API。我不确定如何去做。

1 个答案:

答案 0 :(得分:1)

使用node jwt模块解决您的问题。 用户登录时,然后为用户

创建令牌

var token = jwt.sign(user,app.get(' superSecret'),{               expiresIn:' 1440m' // 24小时后到期    });

每当用户尝试访问任何url创建中间件时,会发送带有响应的令牌,该中间件将验证用户令牌是否有效。

    /* Middle-ware to verify toke */
    apiRoutes.use(function(req, res, next) {
    // check header or url parameters or post parameters for token
    var token = req.body.token || req.query.token || req.headers['x- access-token'];
  // decode token
  if (token) {
    // verifies secret and checks exp
    jwt.verify(token, app.get('superSecret'), function(err, decoded) {      
      if (err) {
        return res.json({ status: 102, message: 'Failed to authenticate token.' });    
      } else {
        // if everything is good, save to request for use in other routes
        req.decoded = decoded;    
        next();
      }
    });
  } else {
    // if there is no token
    // return an error
    return res.status(403).send({ 
        success: false, 
        message: 'No token provided.' 
    });

  }
});