
Setup your application's code
Add the following lines to your base code
// src/services/auth.service.ts
import { Injectable, NgZone } from '@angular/core';
import { Storage } from '@ionic/storage';
// Import Auth0Cordova and auth0.js
import Auth0Cordova from '@auth0/cordova';
import * as auth0 from 'auth0-js';
const AUTH_CONFIG = {
// Needed for Auth0 (capitalization: ID):
clientID: 'YOUR_CLIENT_ID',
// Needed for Auth0Cordova (capitalization: Id):
clientId: 'YOUR_CLIENT_ID',
domain: 'YOUR_AUTH0_DOMAIN',
callbackURL: location.href,
packageIdentifier: 'YOUR_PACKAGE_ID' // config.xml widget ID
};
@Injectable()
export class AuthService {
Auth0 = new auth0.WebAuth(AUTH_CONFIG);
Client = new Auth0Cordova(AUTH_CONFIG);
accessToken: string;
user: any;
loggedIn: boolean;
loading = true;
constructor(
public zone: NgZone,
private storage: Storage
) {
this.storage.get('profile').then(user => this.user = user);
this.storage.get('access_token').then(token => this.accessToken = token);
this.storage.get('expires_at').then(exp => {
this.loggedIn = Date.now() < JSON.parse(exp);
this.loading = false;
});
}
login() {
this.loading = true;
const options = {
scope: 'openid profile offline_access'
};
// Authorize login request with Auth0: open login page and get auth results
this.Client.authorize(options, (err, authResult) => {
if (err) {
throw err;
}
// Set access token
this.storage.set('access_token', authResult.accessToken);
this.accessToken = authResult.accessToken;
// Set access token expiration
const expiresAt = JSON.stringify((authResult.expiresIn * 1000) + new Date().getTime());
this.storage.set('expires_at', expiresAt);
// Set logged in
this.loading = false;
this.loggedIn = true;
// Fetch user's profile info
this.Auth0.client.userInfo(this.accessToken, (err, profile) => {
if (err) {
throw err;
}
this.storage.set('profile', profile).then(val =>
this.zone.run(() => this.user = profile)
);
});
});
}
logout() {
this.storage.remove('profile');
this.storage.remove('access_token');
this.storage.remove('expires_at');
this.accessToken = null;
this.user = null;
this.loggedIn = false;
}
}
Create an Application in Auth0 dashboard

Install the Custom Social Connection extension under Extensions

List the app under the Installed Extensions tab. Click on the Custom Social Connections

Create a uber (oauth2) connection under Custom Social Connections

Configure your connection settings and enable your application under the Apps tab

GET STARTED IN MINUTES
Authentication Built for Security & High Availability
Auth0 is the easiest way for developers to integrate enterprise-grade authentication and identity management to any app.
Industry Standard Compliance
SOC 2, HIPAA/BAA, EU/US Privacy Shield Framework, Open ID Certified.
Learn MoreBuilt by Security Experts
Continuously reviewed and tested by external security experts. Strong password encryption and hashing algorithms, at rest and in transit.
Learn MoreWhat Our Customers Say

Continuously reviewed and tested by external security experts. Strong password encryption and hashing algorithms, at rest and in transit.
Learn MoreGet Auth0 free for 7,000 active users per month with unlimited logins
- Single Sign On
- Passwordless Login
- Up to 2 Social Identity Providers
- Multifactor Authentication
- User Management
- Extensibility (Run custom code on Auth)