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。至此一切都已解决,但请确保您的功能也已正确设置。