node.js:在对请求对象进行身份验证时转换并返回护照.js配置文件,给出承诺 { <pending> }



所以我用护照进行身份验证.js像这样:

passport.use(
new GoogleStrategy(
config.google,
async (accessToken, refreshToken, profile, done) => {
done(null, transformGoog(profile._json, accessToken, refreshToken));
}
)
);

这是我的transformGoog function

async function transformGoog(profile, token, refresh) {
try {
//querying database here 
if (data) {
return {
uniqueID: data.uniqueID,
provider: data.provider
};
} else {
//constructing object to save to database here
let newuser = new user(obj);
await newuser.save();
return {
uniqueID: `google:${profile.id}`,
provider: "google",
};
}
} catch (e) {
console.error(e);
} 
}

这是我console.log请求对象的地方

Router.get(
"/auth/google/callback",
passport.authenticate("google", { failureRedirect: "/auth/google" }),
ctx => console.log(ctx.req.user) );

我得到Promise { <pending> }.我不确定这意味着什么或如何解决它。

已求解: 我修改了它以像这样等待请求对象

Router.get( "/auth/google/callback", passport.authenticate("google", { failureRedirect: "/auth/google" }(,asyncctx => console.log(awaitctx.req.user( (;

最新更新