{"id":13505704,"url":"https://github.com/jakejscott/aws-cdk-phone-verify-api","last_synced_at":"2025-04-19T20:45:18.331Z","repository":{"id":41776312,"uuid":"199725521","full_name":"jakejscott/aws-cdk-phone-verify-api","owner":"jakejscott","description":"Phone verification service built using: AWS cdk, api gateway, dotnet, lambda, dynamodb, and sns","archived":false,"fork":false,"pushed_at":"2022-12-09T21:36:56.000Z","size":734,"stargazers_count":7,"open_issues_count":10,"forks_count":6,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-03-29T13:12:15.328Z","etag":null,"topics":["api-gateway","aws","aws-cdk","cdk","dotnet","dynamodb","lambda"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakejscott.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-30T20:51:40.000Z","updated_at":"2023-03-09T03:15:40.000Z","dependencies_parsed_at":"2023-01-25T21:46:26.003Z","dependency_job_id":null,"html_url":"https://github.com/jakejscott/aws-cdk-phone-verify-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakejscott%2Faws-cdk-phone-verify-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakejscott%2Faws-cdk-phone-verify-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakejscott%2Faws-cdk-phone-verify-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakejscott%2Faws-cdk-phone-verify-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakejscott","download_url":"https://codeload.github.com/jakejscott/aws-cdk-phone-verify-api/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249795751,"owners_count":21326780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","aws","aws-cdk","cdk","dotnet","dynamodb","lambda"],"created_at":"2024-08-01T00:01:11.927Z","updated_at":"2025-04-19T20:45:18.271Z","avatar_url":"https://github.com/jakejscott.png","language":"C#","funding_links":[],"categories":["Blog Posts \u0026 Talks"],"sub_categories":["Multi-accounts setup"],"readme":"# Phone Verify API\n\nThis is an open source application designed to show the usage of modern serverless compute platforms such as [AWS Lambda](https://aws.amazon.com/lambda/) and [DynamoDB](https://aws.amazon.com/dynamodb/). It is built and deployed using the [AWS Cloud Development Kit](https://docs.aws.amazon.com/CDK/latest/userguide/what-is.html).\n\nThis is a service that can be used by an application to check that a user is the owner of the phone number they provide.\n\n[Watch me build this application on YouTube](https://www.youtube.com/watch?v=c9UXHPX6-Ns\u0026list=PLbuD6VMxPZScqUXKm2QAc_InCGdP6jKJy)\n\n## Architecture\n\n![Diagram](docs/arch.png)\n\n## API\n\n### Start verification\n\nWhen a user is validating their phone number, the service will send a 6 digit verification code by SMS and waits for their response.\n\n*Start Request:*\n\n`POST /verify/start`\n\n```json\n{ \"Phone\": \"+64223062141\" }\n```\n\n*Start Response:*\n\n```json\n{ \"Id\": \"44c090cc-2ca0-491e-a4d0-dd2b2d4efadb\" }\n```\n\n### Check verification\n\nThe service checks the users input matches the code. If they match it marks the phone number as verified.\n\n*Check Request*\n\n`POST /verify/check`\n\n```json\n{ \"Id\": \"44c090cc-2ca0-491e-a4d0-dd2b2d4efadb\", \"Code\": \"654321\" }\n```\n\n*Check Response:*\n\n```json\n{ \"Verified\": true }\n```\n\n### Verification Status\n\nUse this endpoint to check the status of a verification.\n\n*Status Request*\n\n`POST /verify/status`\n\n```json\n{ \"Id\": \"44c090cc-2ca0-491e-a4d0-dd2b2d4efadb\" }\n```\n\n*Status Response:*\n\n```json\n{ \"Verified\": true }\n```\n\n### Errors\n\nErrors will be returned with a 400 status code and a simple error message.\n\n```json\n{ \"Error\": \"Phone required\" }\n```\n\n--------------\n\n### Rate limiting\n\nStart Verification\n\n* The top is 10 every half an hour, per phone number.\n\nCheck Verification\n\n* The top is 5 every day, per phone number.\n\nVerification Status\n\n* The top is 60 per minute, per phone number.\n* The top is 180 per hour, per phone number.\n* The top is 250 per day, per phone number.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakejscott%2Faws-cdk-phone-verify-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakejscott%2Faws-cdk-phone-verify-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakejscott%2Faws-cdk-phone-verify-api/lists"}