@gait-as/verification
v1.2.16
Published
Authorization - OTP by email and sms
Downloads
3
Keywords
Readme
Auth node library
A library for authorizing users by sms, email & tokens.
Installation
npm install @gait-as/verification
Pre-requisites
- Node.js 8 or higher
- Twilio account (for sms auth)
- Sendgrid account (for email auth)
Environment variables
The following environment variables must be set:
TWILIO_ACCOUNT_SID
TWILIO_AUTH_TOKEN
SENDGRID_API_KEY
TWILIO_SERVICE_NUMBER
SENDGRID_SERVICE_EMAIL
Usage
Initialize
const { Auth } = require('@gait-as/auth');
const auth = new Auth();
One Time Password by SMS
"hash" will return a hashed OTP that can be stored in the database.
const sms = new SmsAuth(); // Create a new instance of SmsAuth
const hash = sms.sendOTP(phoneNumber); // Send an OTP to the phone number passed as argument
One Time Password by Email
// Send OTP to email
// ... To be implemented
Validate One Time Password
"validated" will return true/false depending on if the OTP is valid or not.
const validated = sms.validateOTP({inputCode: code, hash}); // Validate the code from user with the hashed OTP
Sign token for user
"token" will return a signed token that can be stored in the database.
const token = Auth.signToken({object: user}); // Sign a token with the object passed as argument, return token
// Set secret & expiration time for token [optional]
Auth.signToken({object: user, secret: "test", expiresIn: '1m'});
Validate token
"validated" will return true/false depending on if the token is valid or not.
const validated = await Auth.validateToken({token}); // Validate the token passed as argument, will return true/false
// Set secret for token [optional]
Auth.validateToken({token, secret: "test"});
Set Config
// Set config for sms
sms.config({serviceNumber: twilioPhonenumber, accountSid: "accountSid", authToken: "authToken"})