SoFunction
Updated on 2025-04-11

SpringBoot docking Twilio realizes sending verification codes and verification SMS codes

Introduction to Twilio

Twilio is a cloud communication service company designed to help developers and businesses implement various communication functions through simple APIs. Here are some of the main features and services of Twilio:

Core functions

  • SMS Service (SMS): Allows users to send and receive SMS messages through the API, and supports global SMS sending.
  • Voice call: Provides an API for voice calls, supports functions such as making and receiving calls, voice recognition.
  • Video call: Supports real-time video calls and video conferencing, suitable for various application scenarios.
  • Chat Service: Provides a variety of chat features, including web chat, SMS chat and social media integration.
  • Email Service: Provides email sending and management services through SendGrid (a company acquired by Twilio).

Code Engineering

1. Add dependencies

In yourAdd Twilio dependencies:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0"
         xmlns:xsi="http:///2001/XMLSchema-instance"
         xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.">
    <parent>
        <artifactId>springboot-demo</artifactId>
        <groupId></groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>Twilio</artifactId>

    <properties>
        <>8</>
        <>8</>
    </properties>
    <dependencies>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>twilio</artifactId>
            <version>8.25.0</version> 
        </dependency>
    </dependencies>
</project>

2. Configure Twilio

existorAdd Twilio configuration:

-sid=yourTwilioAccountSID
-token=yourTwilioCertificationToken
-number=yourTwiliotelephone number

3. Create a Twilio configuration class

Create a configuration class to initialize the Twilio client:

package ;

import ;
import ;
import ;
import ;

@Configuration
public class TwilioConfig {

    @Value("${-sid}")
    private String accountSid;

    @Value("${-token}")
    private String authToken;

    @Bean
    public void init() {
        (accountSid, authToken);
    }
}

4. Create a service class

Create a service class to handle the logic of sending verification codes and verifying SMS codes:

package ;

import .;
import ;
import ;
import ;

import ;
import ;
import ;

@Service
public class SmsService {

    @Value("${-number}")
    private String twilioPhoneNumber;

    private Map&lt;String, String&gt; verificationCodes = new HashMap&lt;&gt;();

    public void sendVerificationCode(String toPhoneNumber) {
        String code = generateVerificationCode();
        (toPhoneNumber, code);

        (
                new PhoneNumber(toPhoneNumber),
                new PhoneNumber(twilioPhoneNumber),
                "Your verification code is: " + code)
                .create();
    }

    public boolean verifyCode(String phoneNumber, String code) {
        String storedCode = (phoneNumber);
        return storedCode != null &amp;&amp; (code);
    }

    private String generateVerificationCode() {
        Random random = new Random();
        return ("%06d", (1000000)); // Generate 6-bit verification code    }
}

5. Create a controller

Create a controller to handle HTTP requests:

package ;

import ;
import ;
import .*;

@RestController
@RequestMapping("/api/sms")
public class SmsController {

    @Autowired
    private SmsService smsService;

    @PostMapping("/send")
    public String sendVerificationCode(@RequestParam String phoneNumber) {
        (phoneNumber);
        return "Verification code sent!";
    }

    @PostMapping("/verify")
    public String verifyCode(@RequestParam String phoneNumber, @RequestParam String code) {
        boolean isValid = (phoneNumber, code);
        return isValid ? "Verification successful!" : "Invalid verification code!";
    }
}

The above are just some key codes. Please refer to the code repository below.

Code Repository

/Harries/springboot-demo(Twilio)

6. Test function

Start your

Spring Boot application and use Postman or other tools to test the following API:

  • Send verification code:POST /api/sms/send?phoneNumber=target mobile number
  • Verification verification code:POST /api/sms/verify?phoneNumber=target mobile number&code=verification code

Things to note

  • Make sure your Twilio account is verified and you can send text messages.
  • Handle verification code storage and expiration logic to prevent abuse.
  • Consider using a safer storage method (such as a database) to store verification codes instead of using in-memory maps.

In this way, you can integrate with Twilio, send and verify SMS verification codes in Spring Boot

This is the article about SpringBoot docking and sending verification codes and verifying SMS codes. For more relevant SpringBoot Twilio sending verification codes, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!