2 回答

TA貢獻1796條經驗 獲得超7個贊
const decodedToken = await getUserId(token)
意味著兩件事:
getUserId 必須返回一個 Promise。
decodedToken
由本承諾的決議給出。
getUserId = tokenid => { return new Promise(resolve => { jwt.verify(tokenid, '2308199919990823', (err, decodedToken) => resolve(decodedToken)) }) }

TA貢獻1799條經驗 獲得超6個贊
你忘了在你的函數調用中添加一個return...
此外,您擁有的 try catch 塊將不起作用,因為您的驗證函數是異步的……您需要將其包裝在 Promise 中……
module.exports.getUserId = (tokenid) => {
const token = tokenid;
if (token) {
return new Promise((reject, resolve) => {
jwt.verify(token,'2308199919990823', async (err, decodedToken) => {
if(err){
console.log(err);
return null;
} else {
console.log("user id " + decodedToken.id); // Output user id 5f68efb234a7656
return resolve(decodedToken.id);
}
});
});
}
}
添加回答
舉報