本地环境下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"); } );
疑问
- 使用ngrok作为本地环境的回调URL是否会导致无法获取Refresh Token?
- 若不是,还有哪些原因会导致Refresh Token缺失?
- DropboxOAuth2Strategy是否需要额外配置才能获取Refresh Token?
补充说明:我已查阅Dropbox OAuth2 API文档,确认代码步骤符合要求,恳请各位提供帮助!
内容的提问来源于stack exchange,提问作者Benk I
相关产品推荐
相关产品推荐

