Maak een uitgebreide functiebeschrijving met behulp van Amazon CodeWhisperer
description
Deze prompt helpt het proces van functiebeschrijving te stroomlijnen, zorgt voor duidelijkheid en afstemming onder belanghebbenden, vermindert misverstanden en verbetert de ontwikkelworkflow.
prompt
try_prompt
Help me een gedetailleerde functiebeschrijving voor mijn applicatie opstellen met Amazon CodeWhisperer. Projectnaam: {{project_naam}}. Functiebeschrijving: {{functie_beschrijving}}. Doelgebruik ... more
generate_helper
...
ai_answers
provider: openai
model: gpt-4.1-nano
**Functiebeschrijving voor de applicatie: Voorraadbeheer Systeem**
**Functietitel:** Social Media Login
**Projectnaam:** Voorraadbeheer Systeem
**Gebruikerspersoon:** Geregistreerde Gebruiker
---
### Doel van de functie
Deze functionaliteit stelt geregistreerde gebruikers in staat om zich aan te melden bij het Voorraadbeheer Systeem via hun bestaande social media accounts (bijvoorbeeld Google, Facebook, Twitter). Dit vereenvoudigt het inlogproces, vermindert wachtwoordbeheer en verbetert de gebruikerservaring.
---
### Gebruikersverhalen
**Gebruikersverhaal 1:**
*Als geregistreerde gebruiker wil ik in kunnen loggen met mijn social media account zodat ik snel toegang krijg zonder een nieuw wachtwoord te hoeven onthouden.*
**Gebruikersverhaal 2:**
*Als gebruiker wil ik dat mijn social media accountgegevens veilig worden behandeld zodat mijn privacy beschermd blijft.*
### Acceptatiecriteria
1. De gebruiker kan kiezen uit meerdere social media login-opties (Google, Facebook, Twitter).
2. Het inlogproces via social media moet veilig zijn en voldoen aan de geldende privacy- en beveiligingsrichtlijnen.
3. Na succesvolle authenticatie wordt de gebruiker automatisch ingelogd in het systeem en krijgt toegang tot hun accountgegevens.
4. Bij mislukte authenticatie ontvangt de gebruiker een duidelijke foutmelding.
5. De login via social media moet compatibel zijn op zowel desktop als mobiele apparaten.
6. Gebruikersgegevens worden alleen opgeslagen volgens het privacybeleid en relevante wet- en regelgeving.
7. De functionaliteit moet getest worden met verschillende browsers en social media platformen.
### Technische vereisten
- **Authenticatieprovider integratie:** Gebruik maken van OAuth 2.0 en OpenID Connect standaarden voor social media authenticatie.
- **Gebruik van AWS services:**
- Amazon Cognito voor gebruikersauthenticatie en -beheer.
- Lambda functies voor eventuele aanvullende verwerking.
- API Gateway voor beveiligde endpoints.
- **SDK's en bibliotheken:** Integratie van SDK's van social media platforms (bijvoorbeeld Google Sign-In, Facebook SDK).
- **Beveiliging:**
- HTTPS voor alle communicatie.
- Validatie en verificatie van tokens.
- Beperking van toegangsrechten volgens het principe van least privilege.
- **Logging en monitoring:** Gebruik van CloudWatch voor het bijhouden van authenticatiepogingen en fouten.
- **Fallback:** Mogelijkheid voor traditionele login via gebruikersnaam en wachtwoord mocht social media login niet beschikbaar zijn.
- **Gebruikersgegevens:**
- Alleen noodzakelijke gegevens worden opgeslagen (bijvoorbeeld e-mailadres, naam).
- Gebruikers kunnen hun gekoppelde social media accounts beheren of loskoppelen via instellingen.
---
### Samenvatting
Deze social media login functie verbetert de gebruikservaring door snelle en veilige authenticatie mogelijk te maken, terwijl het voldoet aan alle technische en beveiligingsvereisten. Ontwikkeling moet nauwkeurig worden getest op compatibiliteit en veiligheid om een optimale werking te garanderen.
provider: deepseek
model: deepseek-chat
Zeker, hier is een gedetailleerde functiebeschrijving voor de "Social Media Login" functie in jouw Voorraadbeheer Systeem, speciaal opgesteld voor gebruik met Amazon CodeWhisperer.
---
### **Functiebeschrijving: Social Media Login**
**Projectnaam:** Voorraadbeheer Systeem
**Functie:** Social Media Login
**Doelgebruikerspersoon:** Geregistreerde Gebruiker
**Versie:** 1.0
**Datum:** 20 oktober 2023
#### 1. Doel van de Functie
Deze functie stelt geregistreerde gebruikers in staat om zich snel en veilig aan te melden bij het Voorraadbeheer Systeem met behulp van hun bestaande sociale media-accounts (Google en Facebook als initiële providers). Dit verbetert de gebruikerservaring door het onthouden van wachtwoorden overbodig te maken en verlaagt de drempel voor toegang tot het systeem.
#### 2. Gebruikersverhalen (User Stories)
* **Als Geregistreerde Gebruiker** wil ik me kunnen aanmelden met mijn Google-account, zodat ik geen apart wachtwoord voor het voorraadsysteem hoef te onthouden.
* **Als Geregistreerde Gebruiker** wil ik me kunnen aanmelden met mijn Facebook-account, zodat ik snel en gemakkelijk toegang kan krijgen.
* **Als Geregistreerde Gebruiker** wil ik, bij mijn eerste sociale login, gevraagd worden om mijn profiel (naam, e-mailadres) te controleren en aan te vullen, zodat mijn accountgegevens correct zijn.
* **Als Geregistreerde Gebruiker** wil ik een duidelijke foutmelding zien als de sociale login mislukt, zodat ik begrijp wat er aan de hand is en het opnieuw kan proberen.
* **Als Geregistreerde Gebruiker** verwacht ik dat mijn accountgegevens veilig worden overgedragen en opgeslagen, in overeenstemming met de privacywetgeving.
#### 3. Acceptatiecriteria (Acceptance Criteria)
* **AC 1:** Op de aanmeldpagina moeten duidelijke knoppen staan met de tekst "Aanmelden met Google" en "Aanmelden met Facebook".
* **AC 2:** Bij het klikken op een sociale login-knop wordt de gebruiker veilig doorgestuurd naar de authenticatiepagina van de betreffende provider (Google/Facebook).
* **AC 3:** Na succesvolle authenticatie bij de provider wordt de gebruiker teruggestuurd naar het Voorraadbeheer Systeem en automatisch aangemeld.
* **AC 4:** Als het e-mailadres van de sociale provider nog niet in ons systeem bestaat, wordt een nieuw gebruikersprofiel aangemaakt op basis van de verstrekte gegevens (e-mail, naam).
* **AC 5:** Als het e-mailadres van de sociale provider al in ons systeem bestaat, wordt de bestaande gebruiker aangemeld.
* **AC 6:** Bij de eerste login van een nieuwe sociale gebruiker wordt een scherm getoond waar de gebruiker zijn/haar voor- en achternaam kan controleren en eventueel een telefoonnummer kan toevoegen.
* **AC 7:** Bij een mislukte authenticatie (bijv. gebruiker annuleert, netwerkfout) wordt een algemene, gebruikersvriendelijke foutmelding getoond (bijv. "Aanmelden mislukt. Probeer het opnieuw of neem contact op met de beheerder.").
* **AC 8:** De toegangstokens van de sociale providers worden veilig verwerkt en opgeslagen volgens best practices (bijv. versleuteld).
#### 4. Technische Vereisten & Implementatie (voor Amazon CodeWhisperer)
**Backend (Node.js/Express Voorbeeld):**
* **Vereisten:**
* Gebruik het `passport.js` authenticatie-middleware framework.
* Implementeer de `passport-google-oauth20` en `passport-facebook` strategieën.
* OAuth 2.0-client-ID's en -geheimen moeten veilig worden beheerd via AWS Secrets Manager of omgevingsvariabelen.
* **CodeWhisperer Prompt-voorbeelden:**
* "Configureer een Passport Google OAuth 2.0 strategie voor gebruikersauthenticatie."
* "Schrijf een Express-route voor de callback van Google OAuth."
* "Controleer of een gebruiker al bestaat op basis van e-mail na een sociale login, zo niet, maak dan een nieuwe gebruiker aan."
* "Genereer een JWT-token na succesvolle sociale authenticatie en stuur het terug naar de frontend."
**Frontend (React Voorbeeld):**
* **Vereisten:**
* Maak duidelijke login-knoppen met de officiële logo's en huisstijlkleuren van de providers.
* Houd de toegangstokens veilig (bijv. in `httpOnly` cookies of `localStorage` met voorzorgsmaatregelen).
* Behandel login-feedback (loading states, success, errors).
* **CodeWhisperer Prompt-voorbeelden:**
* "Maak een React-knopcomponent voor aanmelden met Google."
* "Schrijf een functie om een GET-verzoek naar de `/auth/google` route te doen."
* "Toon een laadindicator tijdens het authenticatieproces."
* "Behandel en toon een foutmelding als de sociale login faalt."
**Database (bijv. Amazon DynamoDB of PostgreSQL):**
* **Vereisten:**
* De `gebruikers` tabel moet de volgende velden bevatten:
* `userId` (Primaire sleutel)
* `email` (Unieke index)
* `naam`
* `loginMethode` (bijv. 'google', 'facebook', 'lokaal')
* `providerId` (Het unieke ID van de gebruiker bij de sociale provider)
* `telefoonnummer` (Optioneel)
* **CodeWhisperer Prompt-voorbeelden:**
* "Schrijf een SQL-query om een gebruiker op te zoeken op e-mailadres."
* "Genereer een DynamoDB `PutItem` opdracht om een nieuwe sociale gebruiker in te voeren."
#### 5. Beveiligingsoverwegingen
* **OAuth 2.0 Flow:** Gebruik uitsluitend de geautoriseerde OAuth 2.0-flow met PKCE (Proof Key for Code Exchange) voor extra beveiliging.
* **State Parameter:** Genereer altijd een unieke `state` parameter om CSRF-aanvallen (Cross-Site Request Forgery) te voorkomen.
* **Token Opslag:** Sla toegangstokens niet onnodig op. Gebruik ze alleen voor initialisatie en sla indien nodig een versleutelde refresh token op.
* **HTTPS:** Zorg dat alle communicatie plaatsvindt via HTTPS.
#### 6. Aannames en Afhankelijkheden
* De applicatie is al geconfigureerd met een gebruikersregistratie- en authenticatiesysteem.
* Ontwikkelaarsaccounts zijn aangemaakt bij de Google Cloud Console en Facebook for Developers.
* De frontend en backend kunnen veilig met elkaar communiceren (bijv. CORS correct geconfigureerd).
---

