Skip to content
This repository has been archived by the owner on Sep 20, 2022. It is now read-only.

Turbasen/node-turbasen-auth

Repository files navigation

Nasjonal Turbase Auth

Build status NPM downloads NPM version Node version Dependency status

Authenticate group (grupper) users in Nasjonal Turbase with 0 effort. Just install, and start using it.

Requirements

  1. Node.JS >= 0.10
  2. Nasjonal Turbase API key

Install

npm install turbasen-auth --save

Test

npm test

Usage

var auth = require('turbasen-auth');

Configure

This package uses the official Node.JS library for Nasjonal Turbase (turbasen.js) which can be fully configured using the environment variables:

  • NTB_API_KEY - API key for authenticate requests
  • NTB_API_ENV - API environment (default api, can be dev)
  • NTB_USER_AGENT - User Agent for API requests

You can also set or update the configuration programmatically using the auth.turbasen.configure() method.

auth.authenticate()

Authenticate user against Nasjonal Turbase.

Params

  • string email - user email
  • string password - user password
  • string callback - callback function (Error error, object user)

Return

The returned user object contains navn (name), epost (email), and gruppe (group).

{
  "navn": "Foo User Name",
  "epost": "[email protected]",
  "gruppe": {
    "_id": "54759eb3c090d83494e2d804",
    "navn": "Bix Group Name"
  }
}

Example

auth.authenticate(email, password, function(error, user) {
  if (error) {
    // Something went horrible wrong
    console.error(error);
  } else if (user) {
    console.log('Hello %s!', user.navn);
  } else {
    console.log('Authentication failed!');
  }
});

auth.middleware()

A Connect / Express compatible middleware to make authentication super easy.

Body Params

The following params must be sent as JSON in the request body.

  • string email - user email
  • string password - user password

Return

If the authentication succeeds the user information (identical to authenticate()) will be available in the req.turbasenAuth variable.

Example

See server.js for a complete Express example.

app.post('/auth', auth.middleware, function(req, res){
  // req.turbasenAuth
});

auth.createUserAuth()

Create user authentication object for storage in Nasjonal Turbase.

Params

  • string name - user name
  • string email - user email
  • string password - user password
  • string callback - callback function (Error error, object user)

Return

The returned user object contains navn (name), epost (email), and pbkdf2 (user authentication).

{
  "navn": "Foo User Name",
  "epost": "[email protected]",
  "pbkdf2": {
    "prf": "HMAC-SHA1",
    "itrs": 131072,
    "salt": "XO6rZj9WG1UsLEsAGQH16qgZpCM9D7VylFQzwpSmOEo=",
    "dkLen": 256,
    "hash": "Ir/5WTFgyBJoI3pJ8SaH8qWxdgZ0my6qcOPVPHnYJQ4="
  }
}

Example

auth.createUserAuth(name, email, password, function(error, user) {
  if (error) {
    throw error;
  }

  console.log(user);
  }
});