Skip to content

The client component of Authentic. This helps interact with an `authentic-server` so that you can easily signup, confirm, login, and change-password for users. It will also help send tokens to microservices that require authentication.

Notifications You must be signed in to change notification settings

davidguttman/authentic-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AuthenticClient

The client component of authentic. This helps interact with an authentic-server so that you can easily signup, confirm, login, and change-password for users. It will also help send tokens to microservices that require authentication.

Example

var Authentic = require('authentic-client')

var auth = Authentic({
  server: 'https://auth.scalehaus.io'
})

var creds = {
  email: 'chet@scalehaus.io',
  password: 'notswordfish'
}

// Step 1: log in
auth.login(creds, function (err) {
  if (err) return console.error(err)

  // Step 2: make a JSON request with authentication
  var url = 'https://reporting.scalehaus.io/report'
  auth.get(url, function (err, data) {
    // show that report
    console.log(data)
  })
})

Installation

npm install --save authentic-client

API

Authentic(opts)

This is the main entry point. Accepts an options object and returns an object with helper methods.

var auth = Authentic({
  server: 'https://auth.scalehaus.io'
})

// auth is now an object with various methods:
auth.signup(opts, cb)
auth.confirm(opts, cb)
auth.login(opts, cb)
auth.changePasswordRequest(opts, cb)
auth.changePassword(opts, cb)
auth.magicRequest(opts, cb)
auth.magicLogin(opts, cb)

options

Authentic() takes an options object as its first argument, one of them is required:

  • server: the url of the authentic-server, e.g. 'http://auth.yourdomain.com'

Optional:

  • prefix: defaults to '/auth' if you set a custom prefix for your authentic-server, use that same prefix here
  • authToken: if you have an authToken from a previous login, you may pass it in for immediate use in get and post

auth.signup(opts, cb)

auth.confirm(opts, cb)

auth.login(opts, cb)

auth.changePasswordRequest(opts, cb)

auth.changePassword(opts, cb)

auth.magicRequest(opts, cb)

auth.magicLogin(opts, cb)

See authentic-server's Server API for usage

auth.get(url, opts, cb)

Will make a request using an authToken if one is available, has the same API as [jsonist.get] (https://github.com/rvagg/jsonist#jsonistgeturl--options--callback)

auth.post(url, data, opts, cb)

Will make a request using an authToken if one is available, has the same API as jsonist.post

auth.put(url, data, opts, cb)

Will make a request using an authToken if one is available, has the same API as jsonist.put

auth.delete(url, opts, cb)

Will make a request using an authToken if one is available, has the same API as [jsonist.delete] (https://github.com/rvagg/jsonist#jsonistdeleteurl--options--callback)

If token is present, it will be verified before request against authentic-server's public key, and options will be extended with authorization header prior to sending request. It will use Bearer ${token} scheme.

You can also call verifyToken explicitly yourself and provide a callback. (In case of invalid token, err is going to be provided by jsonwebtoken)

auth.verifyToken(function(err){ ... })

License

MIT

About

The client component of Authentic. This helps interact with an `authentic-server` so that you can easily signup, confirm, login, and change-password for users. It will also help send tokens to microservices that require authentication.

Resources

Stars

Watchers

Forks

Packages

No packages published