

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

Create a Social SoundCloud Connection under Connections / Social section

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)