Denna mikroservice hanterar generering, validering och utgång av verifieringskoder via e-post.
Innehåll
• Generera verifieringskoder: Skapar en tidsbegränsad verifieringskod för en angiven e-postadress.
• Validera verifieringskoder: Validerar en angiven verifieringskod och tar bort den vid en lyckad validering.
• Ta bort utgångna koder: Rensar regelbundet bort utgångna verifieringskoder från databasen.
• E-postintegration: Skickar verifieringskoder via en kö för e-posttjänster.
Tjänsten är implementerad som en Azure Functions-applikation och använder en SQL Server-databas som är hostad på Azure. Den kommunicerar med andra tjänster via Azure Service Bus.
Funktioner:
• GenerateVerificationCode: Lyssnar på verification-code-kön, genererar en verifieringskod och skickar den till e-posttjänstens kö.
• ValidateVerificationCode: Exponerar ett HTTP-endpoint för att validera verifieringskoder.
• RemoveExpiredVerificationCodes: En timer-utlöst funktion som tar bort utgångna koder från databasen.
Tjänst:
• VerificationService: Innehåller metoder för att generera, validera och ta bort verifieringskoder.
Databas:
• En SQL Server-databas hostad på Azure, hanterad via Entity Framework Core.
#Konfiguration
Enviroment variables - lägg till i local.settings.json:
Anslutningssträng för Azure-hostad SQL Server-databas.
• SqlDataBaseConnection
Anslutningssträng för Azure Service Bus
• ServiceBusConnection
Beroenden
• Azure Service Bus: Används för kommunikation mellan tjänster.
• Azure SQL Server/Database: Lagrar verifieringskoder.
Användning
Generera en verifieringskod
För att generera en verifieringskod, skicka ett meddelande som innehåller e-postadressen till verification-code-kön. Tjänsten genererar en kod och skickar en e-postbegäran till email-service-kön.
Ta bort utgångna koder
Funktionen RemoveExpiredVerificationCodes körs automatiskt varje minut för att rensa bort utgångna koder.
Utveckling
Köra lokalt
Sätt upp en lokal SQL Server-instans eller anslut till den Azure-hostade databasen med SqlDataBaseConnection-strängen.
Konfigurera en lokal emulator för Azure Service Bus eller använd en riktig instans.
Testa:
→ Azure verification-code queues - servicebus explorer- send message - skriv in mailadress och skicka.
→ Postman
POST fyll i server adressen (om ej kör lokala):
body-raw { "email": "mailadress@gmail.com", "code": "999999" }
bör få meddelande i PMan att ej är valid/expired
Gå in i databas - finn validation code där. Gå tillbaka i postman och klistra in den istället. Bör få grönt reslutat - valid.
Kika i databasen efter 5 minuter och se att koden/raden är borttagen. Verifieringskoder är giltiga i 5 minuter som standard.