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

本地环境下Dropbox OAuth2获取Refresh Token失败问题排查

关于Dropbox OAuth2无法获取Refresh Token的问题

问题背景

我正在尝试在Web应用中集成Dropbox OAuth2,代码运行正常,但登录成功后仅能获取Access Token,无法获取Refresh Token。当前处于本地开发环境,使用ngrok作为回调URL。

代码片段

前端相关代码

const handleConnect = (service) => {
  const connectionUrl = `${process.env.REACT_APP_HOST_URL}/auth/${service}`;
  const authWindow = window.open(connectionUrl, "_blank");
  window.addEventListener('message', event => {
    if (event.data.message === 'Success') {
      sendTokensToServer({ ...event.data, path: connectedServices[service].path });
      authWindow.close();
    }
  });
};

后端相关代码

const DropboxOAuth2Strategy = require('passport-dropbox-oauth2').Strategy;

passport.use(
  new DropboxOAuth2Strategy(
    {
      apiVersion: "2",
      callbackURL: `${process.env.CALLBACK_URL}/oauth/dropbox/callback`,
      clientID: process.env.DROPBOX_CLIENT_ID,
      clientSecret: process.env.DROPBOX_CLIENT_SECRET,
      // Missing option?
    },
    (accessToken, refreshToken, profile, cb) => {
      console.log(accessToken, refreshToken)
      cb(null, profile);
    }
  )
);

router.get("/auth/dropbox", passport.authenticate("dropbox-oauth2"));

router.get("/oauth/dropbox/callback",
  passport.authenticate("dropbox-oauth2", { failureRedirect: "/" }),
  (req, res) => {
    res.redirect("/success?service=Dropbox");
  }
);

疑问

  1. 使用ngrok作为本地环境的回调URL是否会导致无法获取Refresh Token?
  2. 若不是,还有哪些原因会导致Refresh Token缺失?
  3. DropboxOAuth2Strategy是否需要额外配置才能获取Refresh Token?

补充说明:我已查阅Dropbox OAuth2 API文档,确认代码步骤符合要求,恳请各位提供帮助!


内容的提问来源于stack exchange,提问作者Benk I

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:25:07