Skip to content

Proof Of Concept showing OTP generation and validation technique using Java Spring-boot and LoadingCache Bean from google guava library to handle user's forgot-password flow

Notifications You must be signed in to change notification settings

hardikSinghBehl/otp-generation-validation-spring-boot-poc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OTP Generation And Validation Using Spring Boot

Proof Of Concept showing OTP generation and validation technique using Java Spring-boot and LoadingCache Bean from google guava library to handle user's forgot-password flow

@Bean
public LoadingCache<UUID, Integer> loadingCache() {
 return CacheBuilder.newBuilder().expireAfterWrite(5, TimeUnit.MINUTES)
		.build(new CacheLoader<>() {
			public Integer load(UUID key) {
				return 0;
			}
	});
}

The Above bean is used to store the generated OTP corresponding to the user's unique id (UUID)

The expiration minute(s) for OTP can be set in the application.properties file after which the OTP will be automatically removed from the cache

com.hardik.hadraniel.otp.expiration-minutes=5

In a real implementation, the generated OTP will be sent to the user's entered email-id/phone number rather than a response to an API

All the logic can be found at UserService.class


Local Setup

  • Install Java 15
  • Install Maven

Recommended way is to use sdkman for installing both maven and java

Run the below commands in the core

mvn clean install
mvn spring-boot:run

Run the below command to run Tests

mvn test

server port is configured to 8090 and expiration minute(s) for OTP is configured to 5 minutes (can be changed in application.properties file)

Go to the below url to view swagger-ui (API docs)

http://localhost:8090/swagger-ui.html

About

Proof Of Concept showing OTP generation and validation technique using Java Spring-boot and LoadingCache Bean from google guava library to handle user's forgot-password flow

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages