Hello Appwriter,
i'm creating an OAuth Login with Apple, i have configure everything on my Apple Developer Account and in my Appwrite Console, When i Login with Apple, the user Full name and Email is Created in the Appwrite Cloud Cosole (Auth)
I dont know what's wrong in my code, i keep getting this error response:
GOING TO ROUTE /App
flutter: #0 ClientIO.webAuth.<anonymous closure> (package:appwrite/src/client_io.dart:371:9)
flutter: <asynchronous suspension>
flutter: #1 AppwriteService.loginWithOAuth (package:prayerbuddynewlook/services/appwrite_service.dart:88:7)
flutter: <asynchronous suspension>
flutter: #2 AuthController.loginWithOAuth (package:prayerbuddynewlook/controllers/auth_controller.dart:41:7)
flutter: <asynchronous suspension>```
**here is my Appwrite Services:**
```Future<void> loginWithOAuth(String provider) async {
try {
final redirectUri = 'https://prayerbuddyapp.joons-me.com';
await account.createOAuth2Session(
provider: _mapProvider(provider), // 'facebook', 'google', 'apple'
success: '$redirectUri/loginSuccess',
failure: '$redirectUri/loginFail',
);
_currentUserId = null;
} catch (e, s) {
debugPrint('OAuth login error: $e\n$s');
throw Exception('OAuth login failed');
}
}
OAuthProvider _mapProvider(String name) {
switch (name.toLowerCase()) {
case 'google':
return OAuthProvider.google;
case 'facebook':
return OAuthProvider.facebook;
case 'apple':
return OAuthProvider.apple;
// add more if you need them
default:
throw Exception('Unknown provider $name');
}```
Here is my Controller
isLoading.value = true;
try {
await _appwrite.loginWithOAuth(provider);
currentUserId.value = await _appwrite.getCurrentUserId();
print('currentUserId ${currentUserId.value}');
print("LoginSuccess Controller");
Get.offAll(() => const App(login: true));
} catch (e) {
Get.snackbar('Error', e.toString());
} finally {
isLoading.value = false;
}
}```
Here is my DeepLink
Future<void> initDeepLinks() async {
// print('Deep-Initial');
// Check initial link if app was in cold state (terminated)
final appLink = await _appLinks.getInitialLink();
if (appLink != null) {
var uri = Uri.parse(appLink.toString());
var pathName = uri.pathSegments[0];
if (pathName == 'loginSuccess') {
print("LoginSuccess Deeplink");
Get.to(() => const App(login: true));
} else if (pathName == 'loginFail') {
print("LoginFail Deeplink");
Get.to(() => const Login());
} else if (pathName == 'series') {
Get.to(() => const App(login: true));
} else if (pathName == 'messageSeries') {
var seriesId = uri.queryParameters["seriesId"];
var vidId = uri.queryParameters["vidId"];
// Get.to(() => WatchVideoDeepLink(seriesId: seriesId.toString(), vidId: vidId.toString()));
}
//Get.to(() => const Login());
}
}
each and everytime LoginSuccess Deeplink is printed out, but the error output above is still be outputted
Recommended threads
- Urgent Help
Hello Appwrite team, I urgently need your help. I am the founder of OnBuch, an EdTech application used by around 10,000 users in Cameroon. In the last two day...
- Function's Static IP
Is it possible to have static. IP Address instead of Dynamic IP for getting the IP Address whitelist
- 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...