Skip to content
Back

Linking back to a native app in OAuth flow. Invalid success URL. Expo react native, prebuild android

  • 0
  • React Native
  • Auth
084
27 Oct, 2024, 16:13

Having trouble linking back to native app with OAuth 2 (react-native-appwrite SDK)

Setup:

TypeScript
export const client = new Client()
    .setProject("12345*********")
    .setPlatform("com.thisis.myapp");
    

Below is triggered on button press

TypeScript
const doAuth = async () => {
        console.log(Linking.createURL(""));
        const account = new Account(client);

        const url = account.createOAuth2Token(
            OAuthProvider.Google,
            Linking.createURL("callback"),
            Linking.createURL("callback"),
            []
        );

        if (url) {
            console.log(url.href);

            const result = await WebBrowser.openAuthSessionAsync(
                url.href,
                Linking.createURL("callback")
            );

            console.log(result);
        }
    };```

> Error:
> {
>   "message": "Invalid `success` param: URL host must be one of: localhost, cloud.appwrite.io, appwrite.io",
>   "code": 400,
>   "type": "general_argument_invalid",
>   "version": "1.6.0"
> }

When testing, if i remove the callback urls, a user is registered in appwrite but I am not redirected back to the app from appwrite.
`const url = account.createOAuth2Token(OAuthProvider.Google);`

> Missing redirect URL
> Your OAuth login flow is missing a proper redirect URL. Please check the OAuth docs and send request for new session with a valid callback URL.


Where am I going wrong here? I have seen similar posts but they seem to solve for web, not native apps. Not seeing any help with react native oauth in the docs.

Related issues:
https://discord.com/channels/564160730845151244/1289689242670202880
https://appwrite.io/threads/1253915948969234432
https://appwrite.io/threads/1193987885905489960

ChatGPT suggests going to a section within appwrite where you can add authorized redirect URLS (would add "com.thisis.myapp"). This makes sense to me but that doesn't appear to be a setting.
TL;DR
Developers are having issues linking back to a native app in OAuth 2 flow using Expo React Native and experiencing an "Invalid 'success' param" error due to incorrect URL host. To resolve, you need to add authorized redirect URLs in Appwrite settings, although this might not be readily available. The error also suggests the OAuth login flow is missing a valid redirect URL.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more