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
- How to use dart workspaces to deploy a f...
Hello, I'm developing a Flutter application and I would like to leverage dart pub workspaces to deploy a function with a dart runtime as advertised here : http...
- Migration from Cloud to Self-Hosted not ...
Hello Appwrite Community, I've got the problem, that when I try to migrate my Appwrite Project from the cloud to my self-hosted Appwrite, that an API Key is mi...
- I can't migrate my project from Appwrite...
I'm having an issue migrating my Appwrite project to a self-hosted instance. The problem is that I've exceeded my read rate limit (or database read limit), so I...