Appwrite Google auth not working in production React Native APK built with EAS
- 0
- React Native
- Cloud
I tried creating an apk with EAS the apk built successfully i have also set all the environment vars in EAS project dashboard, and set the in the 'app.json', the problem is whenever i try to login with Google i get this 400 ERROR message in browser, i had re-check every credentials its working fine in development with expo go.
it works well in developement and i think the issue relies in the implementation, here i found a source -> https://bishwajeet-parhi.medium.com/i-built-an-auth-template-powered-by-react-native-and-appwrite-4a0b7ee90ba6
i have tried the solution from above blog and re implemented login function
export async function login() {
try {
let redirectScheme = makeRedirectUri({ preferLocalhost: true, isTripleSlashed: false });
//HACK: localhost is a hack to get the redirection possible
if (process.env.EXPO_PUBLIC_DEV_MODE !== 'true' && !redirectScheme.includes('localhost')) {
redirectScheme = `${redirectScheme}localhost/`;
}
//const redirectUri = Linking.createURL('/', { scheme: redirectScheme });
const responseURL = account.createOAuth2Token(
OAuthProvider.Google,
redirectScheme
);
if (!responseURL) throw new Error("Create OAuth2 token failed");
// console.log({responseURL});
const browserResult = await openAuthSessionAsync(
responseURL.href,
redirectScheme
);
// console.log({browserResult});
if (browserResult.type !== "success")
throw new Error("Create OAuth2 token failed");
const url = new URL(browserResult.url);
const secret = url.searchParams.get("secret")?.toString();
const userId = url.searchParams.get("userId")?.toString();
if (!secret || !userId) throw new Error("Create OAuth2 token failed");
const session = await account.createSession(userId, secret);
if (!session) throw new Error("Failed to create session");
return true;
} catch (error) {
console.error(error);
return false;
}
}
the previous error hasbeen solved the google account shows finally BUT there is new error! if i tab Go Back the app works normally
NB: i have also tried with out / the result is same
//HACK: localhost is a hack to get the redirection possible
if (process.env.EXPO_PUBLIC_DEV_MODE !== 'true' && !redirectScheme.includes('localhost')) {
redirectScheme = `${redirectScheme}localhost`;
}
Recommended threads
- is `account.get()` safe to be used in th...
I want to user's `id` for authentication. However, a while ago I was told in this server not to use `account.get()` and instead add user preferences for that us...
- Appwrite console is too heavy
The Appwrite console is too heavy And all of my services broken Any support , please
- Cloud function deploy stucks in processi...
Been trying for the last hours to deploy my function but for whatever reason, alwasy stuck on processing!