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
- Weird permission failure
when creating an account I use following methods: ``` Future<void> register(String email, String password, String username) async { final user = await accoun...
- Appwrite Storage error 503s for automate...
I'm facing error 503s from Appwrite after about 5-6 seconds of making AI requests from my tool with images and files above 20MB (=> not inline base64 used, but ...
- Flutter Android oAuth is no more working
I currently don't get the oAuth login to work in flutter android. it works on ios and on web. but when try to use it on Android, i get to the point where the ca...