我有一些代码可以创建Web令牌并将其发送回用户。因此,代码首先通过调用createToken函数启动。此函数异步,当webtoken完成创建后将返回。问题出在我的主要代码中,我使用令牌将请求发送回用户,问题是在创建令牌之前发送回送响应。我理解为什么会发生这种情况,因为这是一个异步函数,它会在准备就绪时返回令牌,同时代码将继续继续,因此返回客户端的响应正在发送一个响应,其中令牌变量未定义。我的问题是如何解决这个问题?我知道的一种方法是将我的响应放在creaeToken函数中,但是我不想这样做,因为我的应用程序中出于各种其他原因使用了createToken函数,有时这些原因并不适用。 t根本不包括对客户的回复。所以我的问题是,只有在创建令牌后,我才能将响应发送回客户端?
var token = tokensUtil.createToken(username);
res.send('{"token":"' + token + '"}');
createToken方法如下所示:
var createToken = function(username){
var token = jwt.sign({ "username": username}, secret, {expiresIn: "2h", issuer: issuerName}, function(token){
console.log(token);
return token;
});
};