5. Sessions
5. Sessions
We gaan enkele uitbreidingen maken op het lesvoorbeeld. Neem ofwel je eigen uitgewerkt lesvoorbeeld om van te starten, ofwel het uitgewerkt lesvoorbeeld aangeboden onderaan de theorie les.
Extra route toevoegen voor de admin
Maak een extra route aan 'users' en onder deze route een subroute op de userId (volg de correcte structuur, kijk indien nodig in les 1). Binnen die route maak je een manier om de rol van een gebruiker te updaten (of de volledige gebruiker). Enkel een gebruiker met de rol 'admin' mag dit kunnen updaten. Voorzie zowel de route als de authorisatie. Maak een nieuwe gebruiker aan om dit op te testen en test via Postman. De login gegevens van de bestaande admin gebruiker zijn:
admin@example.com
test123testExtra rol sales toevoegen
Gebruik PgAdmin (zie onderaan les 2) om een extra rol toe te voegen aan de tabel 'Role' met de naam 'sales'.
Maak via Postman een nieuwe gebruiker aan (bewaar de login gegevens, die heb je dadelijk nodig). Gebruik dan postman om de rol van deze gebruiker te wijzigen naar 'sales'.
Authorisatie aanpassen
Pas de authorisatie aan zodat enkel een gebruiker met de rol 'sales' of 'admin' producten kan toevoegen. Je mag er van uit gaan dat een admin altijd alles mag, maar het kan wel dat er in de toekomst nog rollen bij komen die minder mogen (je controle mag dus niet gewoon 'verschillend van customer' zijn). Test dit in Postman met de gebruiker die je in de vorige stap hebt aangemaakt, test ook met een 'admin' en een 'customer'.
Geldigheid van de sessie en cookie aanpassen
Pas de geldigheid van de sessies en cookies aan naargelang de rol van de gebruiker:
- admin: 30 minuten (verversen op 15 minuten)
- sales: 8u (verversen op 4u)
- customer: 12u (verversen op 6u)
Om de sessions makkelijk te controleren kan je een nieuwe route aanmaken voor de admin die de sessies, user en bijhorende rol teruggeeft. Dit is niet verplicht, je kan in PgAdmin eventueel ook een view maken met de sessies, bijhorende username en role om makkelijk te kunnen testen. Je kan ook best je session tabel truncaten in PgAdmin voor je begint met deze testen, dat maakt het iets overzichtelijker.