You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
Zoë
8 years agoExplorer | Level 3
Redirect URI with variable loopback port
Is there any way to register an OAuth2 redirect URI that will support using an unreserved (random) port over loopback/localhost? For desktop applications that might not be installed system-wide (e.g., portable installs), app-declared custom URI scheme redirection and app-claimed HTTPS URI redirection aren't available, and creating a short-lived local HTTP server works well for other OAuth2 services. Dropbox's URI matching appears to require a matching port too though. Do we need to just register ~50,000 URIs for all the different ports? Is there a better alternative?
I'm afraid I don't have a great solution for you, as OAuth 2 redirect URIs for the Dropbox API are required to be pre-registered exactly. I'll be sure to pass this along as feedback though.
One thing you may be able to do instead is to use one static redirect URI but encode the necessary information in the 'state' parameter, and decode it as necessary after the redirect back to your app, to handle it as necessary:
https://www.dropbox.com/developers/documentation/http/documentation#authorizationAlternatively, you could forgo using a redirect URI entirely. With the "code" flow, you can omit redirect_uri and have the user copy and paste the code manually. (Or, for the "token" flow, you can use https://www.dropbox.com/1/oauth2/display_token as the redirect URI and have the user copy and paste the access token.)
- Greg-DBDropbox Staff
I'm afraid I don't have a great solution for you, as OAuth 2 redirect URIs for the Dropbox API are required to be pre-registered exactly. I'll be sure to pass this along as feedback though.
One thing you may be able to do instead is to use one static redirect URI but encode the necessary information in the 'state' parameter, and decode it as necessary after the redirect back to your app, to handle it as necessary:
https://www.dropbox.com/developers/documentation/http/documentation#authorizationAlternatively, you could forgo using a redirect URI entirely. With the "code" flow, you can omit redirect_uri and have the user copy and paste the code manually. (Or, for the "token" flow, you can use https://www.dropbox.com/1/oauth2/display_token as the redirect URI and have the user copy and paste the access token.)
- ZoëExplorer | Level 3
Thanks Greg. I considered using a static redirect URI like you suggested, but that would require redirecting to our own website before redirecting to localhost for the real processing. Since we're a desktop app, I'd rather we not be involved, especially since corporate firewalls might be set up to allow access to Dropbox but not our own site.
I've gone with the code flow for now and it's working, but I do hope the localhost URI matching is made more flexible in the future.
- csproExplorer | Level 4I'd like to upvote the ability to have an arbitrary port in the redirect_uri. This could be allowed only for localhost.
Without this, I don't see how we can move from doing oauth in an embedded browser window to using the system default browser as is recommended. It isn't possible to know what port will be free on a client system so that needs to be done at runtime.
If you look at the google oauth examples (https://github.com/googlesamples/oauth-apps-for-windows) they use a random port. From all of the Dropbox examples I've seen you use a fixed port which is inevitably going to fail on someones machine.
Skipping the redirect URI and having the user cut and paste the code is a non-starter for us. Our users would be very unhappy.- Greg-DBDropbox StaffThanks for the feedback! I'll send it along to the team.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,882 PostsLatest Activity: 24 hours agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!