@osjs/auth0-auth v0.5.2
OS.js is an open-source web desktop platform with a window manager, application APIs, GUI toolkit, filesystem abstractions and much more.
OS.js Auth0 Auth Provider Adapter
This is the Auth0 Auth Provider Adapter for OS.js.
THIS IS A WORK IN PROGRESS
Please see the OS.js Authentication Guide for general information.
Introduction
This adapter makes it possible to authenticate/authorize logins via Auth0.
The client will use the Auth0 "Lock" (login) and send the user profile to the server.
The server will inject middleware to protect the APIs.
This is the setup procedure:
- Create your application on Auth0
- Create your API on Auth0
- Install this library
- Set up the server
- Set up the client
Installation
npm install --save --production @osjs/auth0-auth
Usage
Configure Server
In your server configuration file (src/server/config.js
):
module.exports = {
// Add the following section
auth0: {
jwksUri: 'https://YOUR_AUTH0_DOMAIN/.well-known/jwks.json',
audience: 'https://YOUR_AUDIENCE/',
issuer: 'https://YOUR_AUTH0_DOMAIN/',
}
};
In your server bootstrap script (src/server/index.js
):
// In the top of the file load the library
const auth0auth = require('@osjs/auth0-auth/server.js');
// Locate this line in the file and add the following:
osjs.register(AuthServiceProvider, {
args: {
adapter: auth0auth
}
});
A restart of the server is required
Configure Client
Add the following script to your src/client/index.ejs
file:
<script src="https://cdn.auth0.com/js/auth0/9.5.1/auth0.min.js"></script>
In your client configuration file (src/client/config.js
) file remove the automatic login:
module.exports = {
// Either comment out this section, or remove it entirely
/*
auth: {
login: {
username: 'demo',
password: 'demo'
}
}
*/
// Add the following section
auth0: {
domain: 'YOUR_AUTH0_DOMAIN',
clientID: 'YOUR_CLIENT_ID',
audience: 'https://YOUR_AUDIENCE/'
}
};
In your client bootstrap script (src/client/index.js
):
// In the top of the file load the library
import {Login} from '@osjs/auth0-auth';
// Locate this line in the file and add the following:
osjs.register(AuthServiceProvider, {
before: true,
args: {
login: (core, options) => new Login(core, options)
}
});
Rebuilding the client is required
Contribution
- Sponsor on Github
- Become a Patreon
- Support on Open Collective
- Contribution Guide
Documentation
See the Official Manuals for articles, tutorials and guides.