sms-number-verifier
Allows you to spoof SMS number verification.
- meant for automated systems that need to bypass SMS number verification
- handles hundreds of known services (wechat, google, facebook, whatsapp, uber, twitter, etc...)
- thorough test suite
- great for bots...
Install
This module requires node >= 8
.
npm install --save sms-number-verifier
Usage
const SMSNumberVerifier = require('sms-number-verifier')
const smsVerifier = new SMSNumberVerifier('getsmscode', {
username: '...',
token: '...'
})
// fetch a number to use for a new verification request
const number = await smsVerifier.getNumber({ service: 'google' })
// give number to third-party service such as google...
// third-party service sends SMS code to the given number
// check for valid codes received via SMS from the google service
const codes = await smsVerifier.getAuthCodes({ number, service: 'google' })
// codes = [ '584125' ]
Note: there may be multiple auth codes returned since the SMS numbers being used are publicly shared. We filter the results down to only those codes that could possibly be associated with your request, and most of the time you will only receive one code back. In the case of multiple codes, we recommend you try the codes in-order (the most recently received code will be first).
Note: there may be variable amounts of latency between giving your number to the service and the SMS code being received. If no valid codes are returned, it is recommended that you retry request.getAuthCodes
with an exponential timeout.
Providers
The following providers provide free, virtual numbers:
The following providers provide paid, virtual numbers:
The following providers provide paid, physical numbers:
We highly recommend that you use the getsmscode provider, as virtual numbers (VOIP) are rejected by many popular OTP services, such as Microsoft and Google.
API
SMSNumberVerifier
Main entrypoint for verifying numbers via SMS OTP.
Type: function (provider, opts)
provider
(string | OTPProvider) Name of built-in provider or an instance of a custom provider.opts
object Config options for provider (optional, default{}
)
provider
Underlying OTP provider.
Type: OTPProvider
getNumber
Type: function (opts)
opts
(optional, default{}
)
getAuthCodes
Type: function (opts)
opts
Todo
- support country selection
- support more providers
- how can you tell if a number has been banned?
Related
- parse-otp-message - Parses OTP messages for a verification code and service provider.
- getsmscode - API client for getsmscode.com.
Disclaimer
Using this software to violate the terms and conditions of any third-party service is strictly against the intent of this software. By using this software, you are acknowledging this fact and absolving the author or any potential liability or wrongdoing it may cause. This software is meant for testing and experimental purposes only, so please act responsibly.
License
MIT © Travis Fischer
Support my OSS work by following me on twitter