Google Sign-In Redirects Back to Account Selection Instead of Closing the WebView
- 1
- Self Hosted
- Auth
- Flutter
Hello Appwrite Support Team,
I am implementing Google Sign-In in my Flutter app. Everything works perfectly on the emulator. However, on my physical device, when I use the "Sign in with Google" option, it opens an in-app browser to select a Google account.
After successfully signing in and selecting the account, the in-app browser redirects back to the account selection page instead of closing. This behavior differs from the expected outcome where, upon successful authentication, the browser should close, and the app should resume.
I have already declared the necessary activity in the AndroidManifest.xml file.
Here is some code I’ve tried:
<intent-filter android:label="flutter_web_auth_2">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="appwrite-callback-6749dd62000bc24eac8a" />
</intent-filter>
</activity>```
**service.dart**
``` //* Login a user using google
Future<dynamic> continueWithGoogle() async {
try {
await account?.createOAuth2Session(
provider: OAuthProvider.google,
scopes: [
"profile",
"email",
],
);
return true;
} catch (e) {
return e.toString();
}
}```
**signinmethod.dart**
Due to text limit restriection I can't share signinmethod.dart here, Check out my Google docs for signinmethod.dart code: https://docs.google.com/document/d/1kYKQKKxJagkmimhpolxQFhQ59t9GDuRLOV-me_N6EFs/edit?usp=sharing
Device Details:
Model: Redmi Note 10 Pro Brand: Xiaomi Android Version: 13
I have this same issue; I hope we get a solution as soon as possible.
What's the continuewithgoogle function?
What's your code?
I recommend creating a separated issue
I have this:
app_write_client.dart:
Client appWriteClient = Client().setEndpoint('https://cloud.appwrite.io/v1').setProject('6758162500220388bb27');
Account account = Account(appWriteClient);
auth_service.dart:
@singleton
class AuthenticationService {
Future<User> googleSignIn() async{
try {
final response = await account.createOAuth2Session(provider: OAuthProvider.google);
AppLogger.debug('googleSignIn response: ${response.toString()}');
final user = await account.get();
AppLogger.debug('googleSignIn User details: ${user.toMap()}');
return user;
} on AppwriteException catch (error, stackTrace) {
AppLogger.error("googleSignIn Error: $error", stackTrace);
throw error.toString();
}
}
}
in my viewmodel, i have this:
startLoader();
try {
await authenticationService.googleSignIn();
// await Future.delayed(const Duration(microseconds: 500));
navigationService
.navigateToAndRemoveUntilWidget(const AppBottomNavScreen(
selectedIndex: 0,
));
AppLogger.debug("Google Login Success :::");
showCustomToast("Google Login Successful", success: true);
} catch (err, s) {
AppLogger.error("Google Login Error ::: ${err.toString()}", s);
showCustomToast(err.toString());
} finally {
stopLoader();
}
}```
AndroidManifest.xml:
...
<activity android:exported="true" android:name="com.linusu.flutter_web_auth_2.CallbackActivity" >
<intent-filter android:label="flutter_web_auth_2">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="appwrite-callback-6758162500220388bb7" />
</intent-filter>
</activity>
...
Try routing just after the
await account.createOAuthSession
Code
@COCAINE @Utibe Is that working?
Recommended threads
- Which flutter SDK version for Self Hoste...
Hi all, Is there a good way to figure out which version of flutter SDK and Dart SDK is current for latest available self-hosted 1.8.0 ? I know new features are...
- Bug Report: Crash when trying to createR...
https://github.com/appwrite/sdk-for-android/issues/96 I think the bug is related with this one https://discord.com/channels/564160730845151244/1443887021314539...
- Dokploy docker compose
Hey guys hope y'all doing well, I was wondering if anyone could share a working 1.8.0 docker-compose that works with Dokploy I tried making it but it just does...