This demo shows how to use Ionic AppAuth and authenticate using Okta. The majority of its code comes from @wi3land/ionic-appauth-ng-demo.
Prerequisites: Node 11 and Ionic 4. After installing Node, install Ionic's CLI:
npm i -g ionic
To install this example, run the following commands:
git clone -b okta git@github.com:mraible/ionic-4-oidc-demo.git
cd ionic-4-oidc-demo
npm i
Log in to your Okta Developer account (or # if you don’t have an account).
From the Applications page, choose Add Application. On the Create New Application page, select SPA. Give your app a memorable name, and configure it as follows:
- Login redirect URIs:
http://localhost:44312/implicit/callback
com.okta.dev-737523:/callback
(wheredev-737523.okta.com
is your Okta URL)
- Grant type allowed: Authorization Code
- Click Done
- Click Edit and add Logout redirect URIs:
http://localhost:44312/implicit/logout
com.okta.dev-737523:/logout
- Click Save
Copy your issuer (found under API > Authorization Servers), and client ID into src/app/core/auth.service.ts
as follows:
private addConfig() {
const clientId = '{yourClientId}';
const issuer = 'https://{yourOktaDomain}/oauth2/default';
const scopes = 'openid profile offline_access';
if (this.platform.is('cordova')) {
this.authConfig = {
identity_client: clientId,
identity_server: issuer,
redirect_url: '{yourReversedOktaDomain}:/callback',
scopes: scopes,
usePkce: true,
end_session_redirect_url: '{yourReversedOktaDomain}:/logout',
};
}
...
}
NOTE: The value of {yourOktaDomain}
should be something like dev-123456.okta.com
. Make sure you don't include -admin
in the value!
After modifying this file, start the app and you should be able to authenticate with Okta.
ionic serve
If you'd like to run this app on a mobile emulator or device, you'll need to modify package.json
to use your reversed Okta domain.
"cordova": {
"plugins": {
...
"cordova-plugin-customurlscheme": {
"URL_SCHEME": "com.oktapreview.dev-737523",
...
},
}
}
This configures the Custom URL scheme Cordova plugin so redirects back to your app will work.
You can deploy this app to iOS Simulator using:
ionic cordova run ios -l
Then, in another terminal:
open platforms/ios/MyApp.xcworkspace
Configure signing in Xcode, then run the app.
See https://ionicframework.com/docs/building/ios for more information.
You can deploy this app to an AVD (Android Virtual Device) using:
ionic cordova run android -l
NOTE: You will need to create an AVD using Android Studio first.
This example uses the following open source libraries:
Please post any questions as issues in this repository, or on the Okta Developer Forums.
Apache 2.0, see LICENSE.