/aws-cdk-phone-verify-api

Phone verification service built using: AWS cdk, api gateway, dotnet, lambda, dynamodb, and sns

Primary LanguageC#

Phone Verify API

This is an open source application designed to show the usage of modern serverless compute platforms such as AWS Lambda and DynamoDB. It is built and deployed using the AWS Cloud Development Kit.

This is a service that can be used by an application to check that a user is the owner of the phone number they provide.

Watch me build this application on YouTube

Architecture

Diagram

API

Start verification

When a user is validating their phone number, the service will send a 6 digit verification code by SMS and waits for their response.

Start Request:

POST /verify/start

{ "Phone": "+64223062141" }

Start Response:

{ "Id": "44c090cc-2ca0-491e-a4d0-dd2b2d4efadb" }

Check verification

The service checks the users input matches the code. If they match it marks the phone number as verified.

Check Request

POST /verify/check

{ "Id": "44c090cc-2ca0-491e-a4d0-dd2b2d4efadb", "Code": "654321" }

Check Response:

{ "Verified": true }

Verification Status

Use this endpoint to check the status of a verification.

Status Request

POST /verify/status

{ "Id": "44c090cc-2ca0-491e-a4d0-dd2b2d4efadb" }

Status Response:

{ "Verified": true }

Errors

Errors will be returned with a 400 status code and a simple error message.

{ "Error": "Phone required" }

Rate limiting

Start Verification

  • The top is 10 every half an hour, per phone number.

Check Verification

  • The top is 5 every day, per phone number.

Verification Status

  • The top is 60 per minute, per phone number.
  • The top is 180 per hour, per phone number.
  • The top is 250 per day, per phone number.