Skip to content
Back

Appwrite OAuth2 says Key and Secret not available

  • 0
  • Auth
  • Cloud
Zionnite
22 Sep, 2025, 20:12

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:

TypeScript
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');
  }```
TL;DR
Developers are getting an error message saying "Key and Secret not available" when using Appwrite OAuth2. The issue seems to be with the OAuth configuration and redirect URI setup. **Solution:** The error might be due to missing keys or secrets in the OAuth configuration. Double-check the OAuth configuration and ensure that the necessary keys and secrets are provided. Double-check the redirect URI setup in the Appwrite services to ensure it matches the configuration on Apple's Developer Account and Appwrite Console.
Zionnite
22 Sep, 2025, 20:12

Here is my Controller

TypeScript
    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;
    }
  }```
Zionnite
22 Sep, 2025, 20:22

Here is my DeepLink

TypeScript
   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

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more