Seamless user experience is crucial for product growth, especially in banking applications and FinTech. To achieve this, an OTP-based JWT authentication system can be implemented using the Spring Boot framework and the Vonage Verify API. The system consists of three main steps: JWT creation, filtering user requests, and accessing API functionality. The JWT creation step involves generating a token with an expiry period and returning it to the user. The filtered user requests step involves verifying the token and setting the context that the user is authenticated. The accessing API functionality step involves using three different API routes to complete the authentication process. The system also includes a JWTUtil class for handling JWT encryption, a JWTFilter class for filtering user requests, and an AuthenticationFilter class for getting the authenticated context. Additionally, the Spring Security config is updated to handle the same, and controllers are defined for restricted and unrestricted routes. The service layer provides methods for sending OTPs and verifying OTPs. The system can be tested using three API endpoints: /api/hello, /api/login/init, and /api/login/verify. With this implementation, a better user experience can be achieved by providing seamless authentication and authorization.