Tree House Authentication
npm install @tree-house/authenticationAuthentication module written in TypeScript providing authentication utilities and JWT methods.
Install via npm
``shell`
npm install @tree-house/authentication
or via yarn
`shell`
yarn add @tree-house/authentication
`javascript`
const authenticator = require('@tree-house/authentication')
`javascript`
import * as authenticator from '@tree-house/authentication'
`javascript`
const jwtSettings = {
algorithm: 'HS256',
expiresIn: '7d',
audience: 'TREEHOUSE-AUTH',
issuer: 'treehouse-authentication',
secretOrKey: '5kZxE|gZu1ODB183s772)/3:l_#5hU3Gn5O|2ux3&lhN@LQ6g+"i$zqB_C<6',
};
> You can find all possible configuration options at Github: node-jsonwebtoken
Returns a json webtoken with the provided payload and configuration. (Asynchronous)
Returns a decoded jwt token when the provided token is still valid. (Asynchronous)
Returns a decoded json webtoken. This does not validate the token. (Synchronous)
Returns an express middleware function to use on session based routes using the express-session module. (Synchronous)
`javascript
const app = express();
const session = getSession({
secret: 'mySuperSecretSecret'
});
app.use(session);
`
- All available express-session options
Two-factor authentication functions using the speakeasy module.
Returns two-factor authentication key with base32 and otp-authentication url needed for QR code generation
`javascript`
const { otpauth_url, base32, ... } = generate2FAKey();
- All available speakeasy options
Returns QR code image data, user secret, and url (if you wish to have a custom qr code implementation)
`javascript`
const { imageData, secret, url } = generateQrCode(options);
- All available speakeasy options
Verify whether a token is valid depending on a provided user secret (returns true/false)
`javascript`
const isValidCode = verifyToken('userSecret', 021214);
Returns a random hash (can be used for tokens) (Synchronous)
Returns a hashed password. (Asynchronous)
Check whether a password is valid compared with a hashed password. (Asynchronous)
Hash a password. (Asynchronous)
Dehash a password. (Asynchronous)
You can run npm run test to run all testsnpm run test:coverage` to run all tests with coverage report
You can run
When you find issues, please report them:
- web: https://github.com/ShopBonsai/tree-house/issues
Be sure to include all of the output from the npm command that didn't work as expected. The npm-debug.log file is also helpful to provide.
See the list of contributors who participated in this project.
This project is licensed under the ISC License - see the LICENSE.md file for details