---
description: Ionic Auth Connect reaches end of life on December 31, 2027. Discover the Capacitor OAuth plugin as a modern Ionic Auth Connect alternative.
title: Alternative to the Ionic Auth Connect Plugin - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/alternative-to-ionic-auth-connect-plugin.png
---

<!doctype html> 

[Skip to content ](#alternative-to-the-ionic-auth-connect-plugin) 

[🖥️ Introducing the **Capacitor Electron Platform** — build desktop apps for macOS, Windows, and Linux. Free & open source. ](/blog/announcing-the-capacitor-electron-platform/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Can I keep using Ionic Auth Connect? ](#can-i-keep-using-ionic-auth-connect)
* [ Need Help Migrating? ](#need-help-migrating)
* [ FAQ ](#faq)
* [ Conclusion ](#conclusion)

* Related links

# Alternative to the Ionic Auth Connect Plugin[¶](#alternative-to-the-ionic-auth-connect-plugin "Permanent link")

Looking for an Ionic Auth Connect alternative for your Capacitor app? Ionic [announced the discontinuation of its commercial products](https://ionic.io/blog/important-announcement-the-future-of-ionics-commercial-products) on February 11, 2025, and Auth Connect reaches its end of life on December 31, 2027\. The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) provides a modern, production-ready replacement that supports OAuth 2.0 and OpenID Connect with PKCE across Android, iOS, and Web.

[ ![Build and deploy your Capacitor app with Capawesome Cloud](https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1) ](https://capawesome.io/) 

## Key Takeaways[¶](#key-takeaways "Permanent link")

* Ionic announced the discontinuation of its commercial products on February 11, 2025\. Auth Connect sunsets on December 31, 2027.
* The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) is an actively maintained replacement for the discontinued Ionic Auth Connect plugin.
* It implements the OAuth 2.0 Authorization Code flow with PKCE and supports OpenID Connect on Android, iOS, and Web.
* A single universal API works with any compliant provider — Auth0, Azure AD, Amazon Cognito, Okta, OneLogin, and Google.
* Automatic OpenID Connect discovery means you only provide the issuer URL instead of the full discovery URL.
* Migration is mostly a method-for-method swap, with no upfront setup call required.
* Pair it with the [Capacitor Secure Preferences plugin](/docs/sdks/capacitor/secure-preferences/) for encrypted token storage.

## Why migrate from Ionic Auth Connect?[¶](#why-migrate-from-ionic-auth-connect "Permanent link")

Ionic Auth Connect has been a popular choice for adding OAuth and OpenID Connect authentication to Capacitor apps. It handled login flows, token management, and session handling across platforms. However, following Ionic's acquisition by OutSystems, Ionic [announced on February 11, 2025](https://ionic.io/blog/important-announcement-the-future-of-ionics-commercial-products) that it would discontinue its commercial products: new sales stopped immediately, and maintenance is winding down over multiple years. For Auth Connect, the sunset takes effect on December 31, 2027 — after that end-of-life date, the plugin receives no further updates. Since authentication sits on the critical path of most apps, teams need a replacement that keeps their login flows secure and up to date.

The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) fills this gap. It implements the OAuth 2.0 Authorization Code flow with PKCE, supports automatic OpenID Connect discovery, and works with any compliant provider — including Auth0, Azure AD, Amazon Cognito, Okta, OneLogin, and Google.

## Feature Comparison[¶](#feature-comparison "Permanent link")

Here's how the two plugins stack up:

| Feature                             | Ionic Auth Connect                 | Capawesome OAuth                                                                           |
| ----------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------ |
| OAuth 2.0 Authorization Code + PKCE | Yes                                | Yes                                                                                        |
| OpenID Connect support              | Yes                                | Yes                                                                                        |
| Automatic endpoint discovery        | Yes                                | Yes                                                                                        |
| Token refresh                       | Yes                                | Yes                                                                                        |
| ID token decoding                   | Yes                                | Yes                                                                                        |
| Access token expiration check       | Yes                                | Yes                                                                                        |
| Multi-provider support              | Yes                                | Yes                                                                                        |
| Android support                     | Yes                                | Yes                                                                                        |
| iOS support                         | Yes                                | Yes                                                                                        |
| Web support                         | Yes                                | Yes                                                                                        |
| Secure token storage                | Separate plugin                    | Works with [Capacitor Secure Preferences plugin](/docs/sdks/capacitor/secure-preferences/) |
| Actively maintained                 | No (end of life December 31, 2027) | Yes                                                                                        |

The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) covers the core authentication functionality most teams need, with a clean API and active maintenance.

AI-Assisted Migration

For a more guided experience, add the [Capawesome skills](https://github.com/capawesome-team/skills) to your project with `npx skills add capawesome-team/skills --skill ionic-enterprise-sdk-migration` and use the following prompt with your preferred AI coding assistant:

`` [](#%5F%5Fcodelineno-0-1)Use the `ionic-enterprise-sdk-migration` skill from `capawesome-team/skills` to help me migrate from Ionic Auth Connect to the Capawesome OAuth plugin.
 ``

## Migration from Auth Connect[¶](#migration-from-auth-connect "Permanent link")

Migrating from Ionic Auth Connect to the Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) is straightforward. The following sections walk through each common operation with side-by-side code examples.

### Installation[¶](#installation "Permanent link")

Begin by removing the existing Auth Connect dependency and installing the Capawesome alternative, if you haven't already. To install the Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/), please refer to the [Installation](/docs/sdks/capacitor/oauth/#installation) section in the plugin documentation.

### Setup[¶](#setup "Permanent link")

Auth Connect requires an explicit setup step before use. The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) doesn't need any upfront configuration — you pass all required options directly to each method call.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-1-1)import { AuthConnect, ProviderOptions } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-1-2)
[](#%5F%5Fcodelineno-1-3)const setup = async () => {
[](#%5F%5Fcodelineno-1-4)  await AuthConnect.setup({
[](#%5F%5Fcodelineno-1-5)    platform: 'capacitor',
[](#%5F%5Fcodelineno-1-6)    logLevel: 'DEBUG',
[](#%5F%5Fcodelineno-1-7)    ios: { webView: 'private' },
[](#%5F%5Fcodelineno-1-8)    web: { uiMode: 'popup', authFlow: 'PKCE' },
[](#%5F%5Fcodelineno-1-9)  });
[](#%5F%5Fcodelineno-1-10)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-2-1)// No setup needed — ready to use immediately
`

### Logging in[¶](#logging-in "Permanent link")

Both plugins initiate an OAuth flow, but the API differs. With the Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/), you pass the provider configuration directly to the [login(...)](/docs/sdks/capacitor/oauth/#login) method.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-3-1)import { AuthConnect, Auth0Provider } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const login = async () => {
[](#%5F%5Fcodelineno-3-4)  const provider = new Auth0Provider();
[](#%5F%5Fcodelineno-3-5)  const result = await AuthConnect.login(provider, {
[](#%5F%5Fcodelineno-3-6)    audience: 'https://api.example.com',
[](#%5F%5Fcodelineno-3-7)    clientId: 'YOUR_CLIENT_ID',
[](#%5F%5Fcodelineno-3-8)    discoveryUrl: 'https://example.auth0.com/.well-known/openid-configuration',
[](#%5F%5Fcodelineno-3-9)    redirectUri: 'com.example.app://callback',
[](#%5F%5Fcodelineno-3-10)    scope: 'openid profile email offline_access',
[](#%5F%5Fcodelineno-3-11)    logoutUrl: 'com.example.app://logout',
[](#%5F%5Fcodelineno-3-12)  });
[](#%5F%5Fcodelineno-3-13)  return result;
[](#%5F%5Fcodelineno-3-14)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-4-1)import { Oauth } from '@capawesome-team/capacitor-oauth';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const login = async () => {
[](#%5F%5Fcodelineno-4-4)  const result = await Oauth.login({
[](#%5F%5Fcodelineno-4-5)    issuerUrl: 'https://example.auth0.com',
[](#%5F%5Fcodelineno-4-6)    clientId: 'YOUR_CLIENT_ID',
[](#%5F%5Fcodelineno-4-7)    redirectUrl: 'com.example.app://oauth/callback',
[](#%5F%5Fcodelineno-4-8)    scopes: ['openid', 'profile', 'email', 'offline_access'],
[](#%5F%5Fcodelineno-4-9)    additionalParameters: { audience: 'https://api.example.com' },
[](#%5F%5Fcodelineno-4-10)  });
[](#%5F%5Fcodelineno-4-11)  return result;
[](#%5F%5Fcodelineno-4-12)};
`

A few key differences to note:

* **Provider configuration**: Auth Connect uses provider-specific classes (e.g., `Auth0Provider`). The Capawesome plugin uses a single, universal API for all providers.
* **Discovery**: Auth Connect requires the full discovery URL. The Capawesome plugin only needs the issuer URL and resolves the discovery document automatically.
* **Scopes**: Auth Connect takes a space-delimited string, while the Capawesome plugin takes an array.

### Handling the redirect callback[¶](#handling-the-redirect-callback "Permanent link")

On the web platform, Auth Connect provides a `handleLoginCallback` method. The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) has an equivalent [handleRedirectCallback()](/docs/sdks/capacitor/oauth/#handleredirectcallback) method.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-5-1)import { AuthConnect } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const handleCallback = async () => {
[](#%5F%5Fcodelineno-5-4)  const result = await AuthConnect.handleLoginCallback(window.location.href);
[](#%5F%5Fcodelineno-5-5)  return result;
[](#%5F%5Fcodelineno-5-6)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-6-1)import { Oauth } from '@capawesome-team/capacitor-oauth';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const handleCallback = async () => {
[](#%5F%5Fcodelineno-6-4)  const result = await Oauth.handleRedirectCallback();
[](#%5F%5Fcodelineno-6-5)  return result;
[](#%5F%5Fcodelineno-6-6)};
`

This step is only required on the web. On Android and iOS, the redirect is handled natively.

### Refreshing tokens[¶](#refreshing-tokens "Permanent link")

Token refresh follows a similar pattern. Auth Connect uses a combined `AuthResult` object, while the Capawesome plugin takes individual parameters.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-7-1)import { AuthConnect, Auth0Provider } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-7-2)
[](#%5F%5Fcodelineno-7-3)const refreshSession = async (authResult) => {
[](#%5F%5Fcodelineno-7-4)  const provider = new Auth0Provider();
[](#%5F%5Fcodelineno-7-5)  const newResult = await AuthConnect.refreshSession(provider, authResult);
[](#%5F%5Fcodelineno-7-6)  return newResult;
[](#%5F%5Fcodelineno-7-7)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-8-1)import { Oauth } from '@capawesome-team/capacitor-oauth';
[](#%5F%5Fcodelineno-8-2)
[](#%5F%5Fcodelineno-8-3)const refreshToken = async (refreshToken: string) => {
[](#%5F%5Fcodelineno-8-4)  const result = await Oauth.refreshToken({
[](#%5F%5Fcodelineno-8-5)    issuerUrl: 'https://example.auth0.com',
[](#%5F%5Fcodelineno-8-6)    clientId: 'YOUR_CLIENT_ID',
[](#%5F%5Fcodelineno-8-7)    refreshToken,
[](#%5F%5Fcodelineno-8-8)  });
[](#%5F%5Fcodelineno-8-9)  return result;
[](#%5F%5Fcodelineno-8-10)};
`

### Checking token state[¶](#checking-token-state "Permanent link")

Both plugins provide utility methods for checking token availability and expiration.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-9-1)import { AuthConnect } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-9-2)
[](#%5F%5Fcodelineno-9-3)const checkTokenState = async (authResult) => {
[](#%5F%5Fcodelineno-9-4)  const isExpired = await AuthConnect.isAccessTokenExpired(authResult);
[](#%5F%5Fcodelineno-9-5)  const isAvailable = await AuthConnect.isAccessTokenAvailable(authResult);
[](#%5F%5Fcodelineno-9-6)  const isRefreshAvailable = await AuthConnect.isRefreshTokenAvailable(authResult);
[](#%5F%5Fcodelineno-9-7)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-10-1)import { Oauth } from '@capawesome-team/capacitor-oauth';
[](#%5F%5Fcodelineno-10-2)
[](#%5F%5Fcodelineno-10-3)const checkTokenState = async (
[](#%5F%5Fcodelineno-10-4)  accessToken: string,
[](#%5F%5Fcodelineno-10-5)  accessTokenExpirationDate: number,
[](#%5F%5Fcodelineno-10-6)  refreshToken: string
[](#%5F%5Fcodelineno-10-7)) => {
[](#%5F%5Fcodelineno-10-8)  const { isExpired } = await Oauth.isAccessTokenExpired({
[](#%5F%5Fcodelineno-10-9)    accessTokenExpirationDate,
[](#%5F%5Fcodelineno-10-10)  });
[](#%5F%5Fcodelineno-10-11)  const { isAvailable } = await Oauth.isAccessTokenAvailable({
[](#%5F%5Fcodelineno-10-12)    accessToken,
[](#%5F%5Fcodelineno-10-13)  });
[](#%5F%5Fcodelineno-10-14)  const { isAvailable: isRefreshAvailable } = await Oauth.isRefreshTokenAvailable({
[](#%5F%5Fcodelineno-10-15)    refreshToken,
[](#%5F%5Fcodelineno-10-16)  });
[](#%5F%5Fcodelineno-10-17)};
`

The main difference is that Auth Connect operates on the `AuthResult` object, while the Capawesome plugin takes individual values. This gives you more flexibility in how you store and manage your tokens.

### Decoding the ID token[¶](#decoding-the-id-token "Permanent link")

Both plugins can decode JWT ID tokens locally.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-11-1)import { AuthConnect } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-11-2)
[](#%5F%5Fcodelineno-11-3)const decodeToken = async (authResult) => {
[](#%5F%5Fcodelineno-11-4)  const decoded = await AuthConnect.decodeToken('id', authResult);
[](#%5F%5Fcodelineno-11-5)  return decoded;
[](#%5F%5Fcodelineno-11-6)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-12-1)import { Oauth } from '@capawesome-team/capacitor-oauth';
[](#%5F%5Fcodelineno-12-2)
[](#%5F%5Fcodelineno-12-3)const decodeIdToken = async (idToken: string) => {
[](#%5F%5Fcodelineno-12-4)  const { header, payload } = await Oauth.decodeIdToken({
[](#%5F%5Fcodelineno-12-5)    token: idToken,
[](#%5F%5Fcodelineno-12-6)  });
[](#%5F%5Fcodelineno-12-7)  return payload;
[](#%5F%5Fcodelineno-12-8)};
`

### Logging out[¶](#logging-out "Permanent link")

Both plugins support ending the user's session through the provider's end-session endpoint.

**Ionic Auth Connect:**

`[](#%5F%5Fcodelineno-13-1)import { AuthConnect, Auth0Provider } from '@ionic-enterprise/auth';
[](#%5F%5Fcodelineno-13-2)
[](#%5F%5Fcodelineno-13-3)const logout = async (authResult) => {
[](#%5F%5Fcodelineno-13-4)  const provider = new Auth0Provider();
[](#%5F%5Fcodelineno-13-5)  await AuthConnect.logout(provider, authResult);
[](#%5F%5Fcodelineno-13-6)};
`

**Capawesome OAuth:**

`[](#%5F%5Fcodelineno-14-1)import { Oauth } from '@capawesome-team/capacitor-oauth';
[](#%5F%5Fcodelineno-14-2)
[](#%5F%5Fcodelineno-14-3)const logout = async (idToken: string) => {
[](#%5F%5Fcodelineno-14-4)  await Oauth.logout({
[](#%5F%5Fcodelineno-14-5)    issuerUrl: 'https://example.auth0.com',
[](#%5F%5Fcodelineno-14-6)    idToken,
[](#%5F%5Fcodelineno-14-7)    postLogoutRedirectUrl: 'com.example.app://oauth/logout',
[](#%5F%5Fcodelineno-14-8)  });
[](#%5F%5Fcodelineno-14-9)};
`

## Can I keep using Ionic Auth Connect?[¶](#can-i-keep-using-ionic-auth-connect "Permanent link")

For a while, yes. Ionic has offered active subscribers perpetual, self-support licenses in 2026, so existing apps won't stop working overnight. However, the code is effectively frozen: there are no new features, no compatibility updates for future Android, iOS, or Capacitor releases, and no patches. With the end of life set for December 31, 2027, it's worth planning your migration before an OS or Capacitor update breaks your authentication flow with no fix available.

## Need Help Migrating?[¶](#need-help-migrating "Permanent link")

Prefer to hand the migration off? The Capawesome team can do it for you. From a single-provider login flow to a multi-provider setup with custom token handling, our dedicated migration service moves your authentication over with minimal downtime and little effort on your side.

[Book a Free Consultation](https://cal.com/team/capawesome/ionic-appflow-migration)

## FAQ[¶](#faq "Permanent link")

### Is the Capawesome OAuth plugin free?[¶](#is-the-capawesome-oauth-plugin-free "Permanent link")

No, it's part of [Capawesome Insiders](https://capawesome.io/insiders/), a paid subscription. It's a replacement for Auth Connect's own commercial license, which no longer accepts new customers and receives no compatibility updates past its December 31, 2027 end of life.

### Does the OAuth plugin store tokens for me?[¶](#does-the-oauth-plugin-store-tokens-for-me "Permanent link")

No, and this is a deliberate difference from some all-in-one auth SDKs. The plugin returns the access token, refresh token, and ID token from `login()`, `refreshToken()`, and similar methods, but storing them securely is left to your app. Pair it with the [Capacitor Secure Preferences plugin](/docs/sdks/capacitor/secure-preferences/) to persist tokens in encrypted, platform-native storage rather than rolling your own.

### Which identity providers does it work with?[¶](#which-identity-providers-does-it-work-with "Permanent link")

Any provider that implements standard OAuth 2.0 Authorization Code flow with PKCE and OpenID Connect discovery — the plugin has been used successfully with Auth0, Azure AD, Amazon Cognito, Okta, OneLogin, and Google. Unlike Auth Connect's provider-specific classes (`Auth0Provider`, etc.), it's a single universal API, so switching providers later doesn't mean switching plugin APIs too.

### Can I keep using Ionic Auth Connect in the meantime?[¶](#can-i-keep-using-ionic-auth-connect-in-the-meantime "Permanent link")

For now, yes — apps built against it keep working, and Ionic has offered active subscribers perpetual, self-support licenses. But the code is effectively frozen: no new features, no compatibility fixes for future Android, iOS, or Capacitor releases. Planning the migration before an OS update breaks your login flow with no available fix is safer than waiting for the December 31, 2027 end-of-life date to force the issue.

### Do I have to migrate every login flow at once?[¶](#do-i-have-to-migrate-every-login-flow-at-once "Permanent link")

No. The method names map closely enough (`login`, `handleRedirectCallback`, `refreshToken`, `logout`) that migrating provider-by-provider or screen-by-screen is reasonable, especially if you support multiple identity providers and want to validate one before moving the rest.

## Conclusion[¶](#conclusion "Permanent link")

The end of life of Ionic Auth Connect on December 31, 2027 doesn't mean rebuilding authentication from scratch. The Capawesome [Capacitor OAuth plugin](/docs/sdks/capacitor/oauth/) covers the OAuth 2.0 and OpenID Connect features you relied on — PKCE, automatic discovery, token refresh, and multi-provider support — across Android, iOS, and Web.

With a clean, universal API and no upfront setup, dropping it into an existing project takes little more than swapping the method calls. Pair it with the [Capacitor Secure Preferences plugin](/docs/sdks/capacitor/secure-preferences/) for encrypted token storage and you have a fully maintained authentication stack that keeps pace with the latest Capacitor versions.

**Related reading:**

* [Alternatives to Ionic Enterprise Plugins](/blog/alternatives-to-ionic-enterprise-plugins/)
* [Alternative to the Ionic Identity Vault Plugin](/blog/alternative-to-ionic-identity-vault-plugin/)
* [Announcing the Capacitor OAuth Plugin](/blog/announcing-the-capacitor-oauth-plugin/)

**Stay updated:**

Join the [Capawesome Discord server](https://discord.gg/VCXxSVjefW) to ask questions and connect with the community, and subscribe to the [Capawesome newsletter](/newsletter/) for the latest news about Capawesome, Capacitor, and the Ionic ecosystem.

**Need help migrating from Auth Connect?** Just [contact us](mailto:support@capawesome.io) to get started.

July 17, 2026 

Back to top

```json
{
      "@context": "https://schema.org",
      "@type": "BlogPosting",
      "headline": "Alternative to the Ionic Auth Connect Plugin",
      "description": "Ionic Auth Connect reaches end of life on December 31, 2027. Discover the Capacitor OAuth plugin as a modern Ionic Auth Connect alternative.",
      "image": "https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png",
      "datePublished": "2026-02-11T00:00:00+00:00",
      "dateModified": "2026-07-17T00:00:00+00:00",
      "author": [
        {
          "@type": "Person",
          "name": "Robin Genz",
          "url": "https://github.com/robingenz"
        }
      ],
      "publisher": {
        "@type": "Organization",
        "name": "Capawesome",
        "url": "https://capawesome.io",
        "logo": {
          "@type": "ImageObject",
          "url": "https://capawesome.io/assets/images/logo.svg"
        }
      },
      "articleSection": "Capacitor",
      "keywords": ["Capacitor", "Guides", "SDKs"],
      "isPartOf": {
        "@type": "Blog",
        "@id": "https://capawesome.io/blog/#blog"
      },
      "mainEntityOfPage": "https://capawesome.io/blog/alternative-to-ionic-auth-connect-plugin/",
      "url": "https://capawesome.io/blog/alternative-to-ionic-auth-connect-plugin/"
    }
{
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://capawesome.io/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://capawesome.io/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Alternative to the Ionic Auth Connect Plugin",
          "item": "https://capawesome.io/blog/alternative-to-ionic-auth-connect-plugin/"
        }
      ]
    }
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Why migrate from Ionic Auth Connect?", "acceptedAnswer": {"@type": "Answer", "text": "Ionic Auth Connect has been a popular choice for adding OAuth and OpenID Connect authentication to Capacitor apps. It handled login flows, token management, and session handling across platforms. However, following Ionic's acquisition by OutSystems, Ionic announced on February 11, 2025 that it would discontinue its commercial products: new sales stopped immediately, and maintenance is winding down over multiple years. For Auth Connect, the sunset takes effect on December 31, 2027 — after that end-of-life date, the plugin receives no further updates. Since authentication sits on the critical path of most apps, teams need a replacement that keeps their login flows secure and up to date. The Capawesome Capacitor OAuth plugin fills this gap. It implements the OAuth 2.0 Authorization Code flow with PKCE, supports automatic OpenID Connect discovery, and works with any compliant provider — including Auth0, Azure AD, Amazon Cognito, Okta, OneLogin, and Google."}}, {"@type": "Question", "name": "Can I keep using Ionic Auth Connect?", "acceptedAnswer": {"@type": "Answer", "text": "For a while, yes. Ionic has offered active subscribers perpetual, self-support licenses in 2026, so existing apps won't stop working overnight. However, the code is effectively frozen: there are no new features, no compatibility updates for future Android, iOS, or Capacitor releases, and no patches. With the end of life set for December 31, 2027, it's worth planning your migration before an OS or Capacitor update breaks your authentication flow with no fix available."}}, {"@type": "Question", "name": "Need Help Migrating?", "acceptedAnswer": {"@type": "Answer", "text": "Prefer to hand the migration off? The Capawesome team can do it for you. From a single-provider login flow to a multi-provider setup with custom token handling, our dedicated migration service moves your authentication over with minimal downtime and little effort on your side. Book a Free Consultation"}}, {"@type": "Question", "name": "Is the Capawesome OAuth plugin free?", "acceptedAnswer": {"@type": "Answer", "text": "No, it's part of Capawesome Insiders, a paid subscription. It's a replacement for Auth Connect's own commercial license, which no longer accepts new customers and receives no compatibility updates past its December 31, 2027 end of life."}}, {"@type": "Question", "name": "Does the OAuth plugin store tokens for me?", "acceptedAnswer": {"@type": "Answer", "text": "No, and this is a deliberate difference from some all-in-one auth SDKs. The plugin returns the access token, refresh token, and ID token from login(), refreshToken(), and similar methods, but storing them securely is left to your app. Pair it with the Capacitor Secure Preferences plugin to persist tokens in encrypted, platform-native storage rather than rolling your own."}}, {"@type": "Question", "name": "Which identity providers does it work with?", "acceptedAnswer": {"@type": "Answer", "text": "Any provider that implements standard OAuth 2.0 Authorization Code flow with PKCE and OpenID Connect discovery — the plugin has been used successfully with Auth0, Azure AD, Amazon Cognito, Okta, OneLogin, and Google. Unlike Auth Connect's provider-specific classes ( Auth0Provider, etc.), it's a single universal API, so switching providers later doesn't mean switching plugin APIs too."}}, {"@type": "Question", "name": "Can I keep using Ionic Auth Connect in the meantime?", "acceptedAnswer": {"@type": "Answer", "text": "For now, yes — apps built against it keep working, and Ionic has offered active subscribers perpetual, self-support licenses. But the code is effectively frozen: no new features, no compatibility fixes for future Android, iOS, or Capacitor releases. Planning the migration before an OS update breaks your login flow with no available fix is safer than waiting for the December 31, 2027 end-of-life date to force the issue."}}, {"@type": "Question", "name": "Do I have to migrate every login flow at once?", "acceptedAnswer": {"@type": "Answer", "text": "No. The method names map closely enough ( login, handleRedirectCallback, refreshToken, logout) that migrating provider-by-provider or screen-by-screen is reasonable, especially if you support multiple identity providers and want to validate one before moving the rest."}}], "url": "https://capawesome.io/blog/alternative-to-ionic-auth-connect-plugin/"}
```
