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 generate jwt after authentication
```javascript const { Client, Account } = require('appwrite'); const client = new Client(); client .setEndpoint('xxxxxxxxxxxxxxxxxxxxx') .setProject('...
- Invalid Query Go SDK 0.2.0
Hello everyone, as you can see my log, the Go SDK somehow always return Error, but when i'm using client sdk for React it's fine
- google Auth in Android not working
i am adding "login with google" button in my android app, i have completely setup the google auth in appwrite and google cloud console too. heres what i have d...