Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
courier-otp
Advanced tools
Custom OTP package for sending OTP via SMS and Email and verifying OTP. This package is built on top of Courier and Redis.
Using npm:
$ npm install --save courier-otp
Using yarn:
$ yarn add courier-otp
To use this package, you need to have a Courier account and a Redis server.
IMPORTANT: In your Courier account, you need to create a new template with the
{otp}
variable. This variable will be replaced with the OTP code. Otherwise, users won't receive the OTP code.
const { CourierOtp } = require('courier-otp')
const main = async () => {
const courierOtp = new CourierOtp({
redisUrl: '<redis-url>',
courierApiKey: '<courier-api-key>',
courierTemplateId: '<courier-template-id>',
})
// send otp
const result = await courierOtp.sendOtp({
to: 'you@example.com',
type: 'email',
})
console.log(result)
// verify otp
const verifyResult = await courierOtp.verifyOtp({
to: 'you@example.com',
type: 'email',
otp: '123456',
})
console.log(verifyResult)
}
main()
new CourierOtp(options)
Creates a new instance of CourierOtp
.
options
- An object containing the following fields:
redisUrl
- The url of the redis server.courierApiKey
- The api key of the courier account.courierTemplateId
- The template id of the courier account.sendOtp(options)
Sends an OTP to the given email or phone number.
options
- An object containing the following fields:
to
- The email or phone number to send the OTP to.type
- The type of the to
field. It can be either email
or phone_number
.otpOptions
- An object containing the following fields:
length
- The length of the OTP. Default is 6
.expiry
- The expiry of the OTP in seconds. Default is 300
(5 minutes).courierVariables
- An object containing the variables to be replaced in the courier template. Note that the otp
variable is reserved for the OTP code.An object containing the following fields:
requestId
- The request id from the courier api.otp
- The generated OTP.or null if the OTP is not sent.
verifyOtp(options)
Verifies the given OTP.
options
- An object containing the following fields:
to
- The email or phone number to send the OTP to.type
- The type of the to
field. It can be either email
or phone_number
.otp
- The OTP to verify.An object containing the following fields:
verify
- A boolean indicating whether the OTP is valid or not.error
- An error message if the OTP is invalid.type
- Resend type. It can be SUCCESS
, INVALID_OTP
or ERROR
.MIT
Contributions are welcome! Just open an issue or a pull request.
FAQs
Send and Verify OTP using Courier & Redis
We found that courier-otp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.