box / box-android-sdk

Apache License 2.0
62 stars 68 forks source link

ERR_UNKNOWN_URL_SCHEME while authenticating using oauth2 #438

Open dabeku opened 3 years ago

dabeku commented 3 years ago

Description of the Issue

I use Box in my iOS and Android app (same client id and client secret as I only want to manage the app once). I recently switched to oauth2 in the iOS app which works fine. I set the redirect URI in the box developer console to boxsdk-MY_CLIENT_ID://boxsdkoauth2redirect which works fine for iOS. When I try to use oauth2 using the same redirect URI in Android, I get an ERR_UNKNOWN_URL_SCHEME error after login to Box inside the app.

Strangely, when I close and restart the app, everything seems to work fine: I got a valid Box client which can be used to access Box.

Expected Behavior

I expect the login to work correctly so I don't have to restart the app.

Error Message, Including Stack Trace

Only a short toast showing authentication failed with ERR_UNKNOWN_URL_SCHEME

dabeku commented 3 years ago

This issue seems to be known for some time now as shown here: https://support.box.com/hc/en-us/community/posts/360051837033-Box-mobile-SDKs-and-upcoming-redirect-url-change but doesn't seem have a high priority.

If anyone has the same issue: The only way to solve this issue is to create a duplicate app in box developer console and set a different OAuth 2.0 Redirect URI.

sujaygarlanka commented 3 years ago

@dabeku We have updated the iOS SDK to accepting many variations or URI's recently. I would try using the URI that worked well with your android app in the iOS SDK. To do so, you must upgrade to the most recent version of the iOS SDK. Hope this helps!

dabeku commented 3 years ago

I already tried that but this results in an invalid_client error although the client_id is correct (in iOS). There must be a way to support custom URL schemes as the Dropbox API for Android does exactly that (see data android:scheme="db-YOUR_APP_KEY_HERE" here).