Req.Params.Token returns 未定义
Req.Params.Token returns undefined
在我的代码中,我让我的注册页面在填写并提交表格后发送一封验证电子邮件。他们收到 link 到他们的电子邮件以进行验证,并且 link 应该触发将帐户从非活动状态更改为活动状态的请求。不知道是不是我这里做错了,代码如下
用户点击 link 后最终到达的位置。
app.get('/verify-email', (req, res, next) => {
console.log('req.params.token: ' + req.params.token);
changeAccountStatus(req.params.token);
res.redirect('/login');});
token传递的函数
function changeAccountStatus(verifyingToken){
connection.query('SELECT * FROM ACCOUNTS WHERE VerificationToken= ?', [verifyingToken], function(error, results, fields) {
if (error) {
console.log("Error");
console.log(error);
return;
}
else {
console.log('results from WHERE VerificationToken ' + results[0]);
connection.query('UPDATE ACCOUNTS SET STATUS = ? WHERE VerificationToken = ?', ['Active', verifyingToken], function (error, results, fields) {
if (error) {
console.log("Error");
console.log(error);
}
else {
console.log('results from UPDATE ACCOUNTS ' + results[0]);
}
});
}
});};
在app.get('/verify-email')方法中,令牌returns未定义。我不确定为什么,我知道我得到了一个令牌,因为发送了一封电子邮件并将令牌推送到数据库。
你确定你的令牌在参数中吗?通常,token 应该在 headers 中。
尝试 req.headers.authorization
而不是 req.params.token
来检查它是否存在。
我需要将 req.params.token 更改为 req.query.token。至此一切都已解决,但请确保您的功能也已正确设置。
在我的代码中,我让我的注册页面在填写并提交表格后发送一封验证电子邮件。他们收到 link 到他们的电子邮件以进行验证,并且 link 应该触发将帐户从非活动状态更改为活动状态的请求。不知道是不是我这里做错了,代码如下
用户点击 link 后最终到达的位置。
app.get('/verify-email', (req, res, next) => {
console.log('req.params.token: ' + req.params.token);
changeAccountStatus(req.params.token);
res.redirect('/login');});
token传递的函数
function changeAccountStatus(verifyingToken){
connection.query('SELECT * FROM ACCOUNTS WHERE VerificationToken= ?', [verifyingToken], function(error, results, fields) {
if (error) {
console.log("Error");
console.log(error);
return;
}
else {
console.log('results from WHERE VerificationToken ' + results[0]);
connection.query('UPDATE ACCOUNTS SET STATUS = ? WHERE VerificationToken = ?', ['Active', verifyingToken], function (error, results, fields) {
if (error) {
console.log("Error");
console.log(error);
}
else {
console.log('results from UPDATE ACCOUNTS ' + results[0]);
}
});
}
});};
在app.get('/verify-email')方法中,令牌returns未定义。我不确定为什么,我知道我得到了一个令牌,因为发送了一封电子邮件并将令牌推送到数据库。
你确定你的令牌在参数中吗?通常,token 应该在 headers 中。
尝试 req.headers.authorization
而不是 req.params.token
来检查它是否存在。
我需要将 req.params.token 更改为 req.query.token。至此一切都已解决,但请确保您的功能也已正确设置。