@osjs/auth0-auth

0.5.2 • Public • Published

OS.js Logo

OS.js is an open-source web desktop platform with a window manager, application APIs, GUI toolkit, filesystem abstractions and much more.

Support Support Donate Donate Community

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:

  1. Create your application on Auth0
  2. Create your API on Auth0
  3. Install this library
  4. Set up the server
  5. 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

Documentation

See the Official Manuals for articles, tutorials and guides.

Links

Readme

Keywords

Package Sidebar

Install

npm i @osjs/auth0-auth

Weekly Downloads

0

Version

0.5.2

License

BSD-2-Clause

Unpacked Size

45.7 kB

Total Files

6

Last publish

Collaborators

  • andersevenrud