node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »




npm install --save authentication-utilities


Exports three utility functions that carry out common authentication tasks

authenticateAsync(URL, username, password)

Checks whether a username and password authenticate against a given URL. Does this by querying the URL endpoint with a Basic auth header attached to the HTTP GET query. Will return the response from the server interpreted as JSON, or throw an error if anything goes wrong. Errors can be:

  • Generated by the function - missing credentials, invalid URL, connection failure.
  • Generated by the server - invalid username/password, permission denied, etc. Errors generated by the server should be returned as JSON under the 'error' key.
import {authenticateAsync} from 'authentication-utilities';
import {gui} from './gui.js';
const AUTH_URL = '';
async function login(username, password) {
  try {
    const responseJson = await authenticateAsync(AUTH_URL, username, password);
    const favouriteColour = responseJson.user.favouriteColour; // Contents of responseJson depends on what the server returns
    console.log('LOGGED IN!');
  } catch (error) {
    console.log('FAILED TO LOGIN');

getAuthHeader(username, password)

Returns a Basic auth header with the given username and password in a Base64 encoded string

import { getAuthHeader } from 'authentication-utilities';
function updateFavouriteColour(newFavouriteColour, username, password) {
  fetch(COLOUR_UPDATE_URL + newFavouriteColour, {
    method: 'POST',
    headers: {
      Authorization: getAuthHeader(username, password),


Encodes a given password using sha256 and optional salt, producing a non-reversible hash

import { hashPassword } from 'authentication-utilities';
class User {
  updatePassword(password) {
    this.encodedPassword = hashPassword(password, salt); // Store non-reversible hash of the password for security