You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express.js中Passport Google OAuth2.0策略RefreshToken为undefined问题

Google OAuth2 Passport策略中refreshToken变为undefined的问题

此前我的Passport OAuth2策略能正常获取accessToken和refreshToken,但现在refreshToken莫名变成了undefined。清除浏览器缓存/Cookie后仅能正常一次,之后又会恢复为undefined。我已经在Google Cloud Console重置了OAuth设置并更新了clientId,但问题依旧,且官方文档中找不到相关说明。

我的passport.js代码:

passport.use(
    new GoogleStrategy(
        {
            clientID: process.env.GOOGLE_CLIENT_ID,
            clientSecret: process.env.GOOGLE_CLIENT_SECRET,
            callbackURL: "/auth/google/callback",
            refreshToken: true, // 此处应获取refreshToken
        },
        function (accessToken, refreshToken, profile, done) {
            // 用户完成授权、授权码兑换为accessToken时触发此函数
            console.log("Myprofile: ", profile);
            console.log("REFRESHTOKEN: ", refreshToken); // 这里输出undefined
            done(null, { profile, accessToken, refreshToken });
        }
    )
);
passport.serializeUser((user, done) => {
    console.log("myPre user: ", user);
    done(null, user);
});

passport.deserializeUser((user, done) => {
    console.log("my user: ", user);
    done(null, user);
});

我的Auth.js代码:

router.get(
    "/google",
    passport.authenticate("google", {
        scope: ["profile", "https://www.googleapis.com/auth/youtube"],
        accessType: "offline",
        approvalPrompt: "force",
    })
); // 跳转至授权页面获取用户授权码

// 拿到授权码后再次调用passport.authenticate,获取用户信息与accessToken
router.get(
    "/google/callback",
    passport.authenticate("google", { failureRedirect: "/auth/error" }),
    function (req, res) {
        //console.log(req.user);
        //console.log("MY TOKEN: ", req.user.accessToken);
        //console.log("accessing accessToken in callback!...going to redirect to forntend now");
        //const accessToken = req.user.accessToken;
        //res.cookie("accessToken", accessToken);
        // 用户完成授权、授权码兑换为accessToken时触发此函数
        res.redirect("http://localhost:8080/auth/success");
        //res.redirect("http://localhost:3000/Project/YoutubeApp/Home");
    }
);

内容的提问来源于stack exchange,提问作者Ethan Gordon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:00:18