Flutter Developer
I'm trying to implement Google login using Appwrite in my Flutter web app. The login process opens a new tab for authentication, but after logging in:
The popup remains open instead of closing automatically.
The main page does not immediately update to show the logged-in user.
The login button stays disabled even if I close the popup manually.
There's no logout button appearing after login.
Future googleLogin() async {
setState(() => isLoading = true);
try {
final account = Account(widget.account.client);
await account.createOAuth2Session(
provider: OAuthProvider.google,
success: 'http://localhost:3000/auth.html',
);
await Future.delayed(Duration(seconds: 2));
final user = await account.get();
if (user != null) {
setState(() {
loggedInUser = user;
isLoading = false;
});
} else {
setState(() => isLoading = false);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Error retrieving user data')),
);
}
} catch (e) {
setState(() => isLoading = false);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Login failed: $e')),
);
}
}
My auth.html file contains:
Questions:
How can I make the popup window close automatically after login?
How do I ensure the main page updates immediately with the logged-in user info?
Is there a better approach to handling OAuth login in Flutter Web with Appwrite?
Any help would be greatly appreciated! Thanks in advance.