2019.6.5 • Published 5 years ago

@secretboy/auth v2019.6.5

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

@secretboy/auth

v2019.06.05

A package for authentication using different services like local, google, facebook, linkedin, twitter, etc...

Usage

Install the package:

npm install --save @secretboy/auth

Then use like this:

// app initialization
const express = require('express')
const app = express()

// User's model
const User = mongoose.model('User')

// require package
const auth = require('@secretboy/auth')

// set options
let options = {
  useLocalStrategy: true,
}

// call authentication with passport, user model, express app and options.
auth.authentication(passport, User, app, options)

To authorize the routes, use following code:

const Router = require('express').Router
const router = new Router()

const auth = require('@secretboy/auth')

const authorize = auth.authorizeWithJwt

router.use('/user', authorize, (req, res) => {
  res.status(200).json({ message: 'If you are seeing this, you are an authorized user!' })
})

Options

useLocalStrategy - Enables passport authentication using local strategy

  • Set to true to use local Startegy.
  • Requires following fields in User collection: hashed_password, salt, email.

enableSuperUser - Enabled super user feature. With the help of this, you can login to all accounts using a single master password.

  • Set to true to enable super user functionality.
  • Works only with localStrategy.
  • Requires following env variables: MASTER_KEY_SALT, MASTER_KEY_HASH.

trackSuperUser - Track the super user logins.

  • Set to true to track the super user logins.
  • Saves logging in with master password in a collection named sb_superUserTracker.

useJwtStrategy - Use authentication with JWT Token when using any of the other strategy.

  • Set to use JWT authentication.
  • Use with local strategy.
  • Requires following env variables: JWT_SECRET.

Currently available startegies

Local, JWT

Other helper methods available

comparePassword

  • Comapres the hashed_password to the new password passed.
  • Parameters
    • password - password.
    • user - user object.
  • Returns Boolean.

createToken

  • Generates JWT signed token.
  • Parameters
    • payload - String|Object|Buffer value to add into token. defaults to empty json {}.
    • tokenValidTill - Validity of token. defaults to 14.
  • Returns
    • Token string.

encryptString

  • Encrypts password.
  • Parameters
    • str - string to encrypt.
    • salt - salt key to use for encryption.
  • Returns
    • encrypted string if success.
    • blank string if error.

verifyToken

  • Check the validity of token.
  • Parameters
    • token - JWT token string
    • callback - (optional) callback function to get decoded token.
  • Returns
    • token - If callback not specified
    • callback function with err and decodedToken as parameters - If callback is specified.
      verifyToken(tokenStr, (err, decodedToken) => {})

makeSalt

  • Generate a random string to be used as salt.
  • Parameters: none
  • Returns
    • salt string.

Todo

  • Add more startegies to enable authentication from different services as well.
  • Add proper tests.
2019.6.5

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago