我目前正致力于注册模块。我可以使用表格注册。我使用Angular JS作为前端,使用Nodejs作为后端服务。我调用API,因此它被注册。注册后,用户会收到验证邮件,点击该按钮后,用户应该会成功验证。
我已经完成了直到发送邮件,但点击了“验证”按钮后在邮件中它直接登陆登录页面而不进行验证。我想验证用户并将令牌发送到验证API。我不确定如何去做。
答案 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.'
});
}
});