Phone Number
The phone number plugin extends the authentication system by allowing users to sign in and sign up using their phone number. It includes OTP (One-Time Password) functionality to verify phone numbers.
Installation
Add Plugin to the server
Migrate the database
Run the migration or generate the schema to add the necessary fields and tables to the database.
See the Schema section to add the fields manually.
Add the client plugin
Usage
Send OTP for Verification
To send an OTP to a user's phone number for verification, you can use the sendVerificationCode
endpoint.
Verify Phone Number
After the OTP is sent, users can verify their phone number by providing the code.
When the phone number is verified, the phoneNumberVerified
field in the user table is set to true
. If disableSession
is not set to true
, a session is created for the user. Additionally, if callbackOnVerification
is provided, it will be called.
Allow Sign-Up with Phone Number
to allow users to sign up using their phone number, you can pass signUpOnVerification
option to your plugin configuration. It requires you to pass getTempEmail
function to generate a temporary email for the user.
SignIn with Phone number
In addition to signing in a user using send-verify flow, you can also use phone number as an identifier and sign in a user using phone number and password.
Update Phone Number
Updating phone number uses the same process as verifying a phone number. The user will receive an OTP code to verify the new phone number.
Then verify the new phone number with the OTP code.
if user session exist the phone number will be updated automatically
Disable Session Creation
By default, the plugin creates a session for the user after verifying the phone number. You can disable this behavior by passing disableSession: true
to the verify
method.
Options
otpLength
: The length of the OTP code to be generated. Default is6
.sendOTP
: A function that sends the OTP code to the user's phone number. It takes the phone number and the OTP code as arguments.verifyOTP
: A custom function to verify the OTP code. It takes the phone number and the OTP code as arguments and returns a boolean indicating whether the code is valid.expiresIn
: The time in seconds after which the OTP code expires. Default is300
seconds.callbackOnVerification
: A function that is called after the phone number is verified. It takes the phone number and the user object as the first argument and a request object as the second argument.
phoneNumberValidator
: A custom function to validate the phone number. It takes the phone number as an argument and returns a boolean indicating whether the phone number is valid.signUpOnVerification
: An object with the following properties:getTempEmail
: A function that generates a temporary email for the user. It takes the phone number as an argument and returns the temporary email.getTempName
: A function that generates a temporary name for the user. It takes the phone number as an argument and returns the temporary name.
Schema
The plugin requires 2 fields to be added to the user table
User Table
Field Name | Type | Key | Description |
---|---|---|---|
phoneNumber | string | - | The phone number of the user |
phoneNumberVerified | boolean | - | Whether the phone number is verified or not |