This project provides login,registering, resetting password and verifying registeration with activation code.
Sql scripts can be found in the project directory
All endpoints and authentication are tested with POSTMAN
- First download postgresql and configure it according to your machine.
- After installation, save postgresql host, username and password data. appsettings.json has the configuration info, change it respectively.
- open Package Manager Console and write add-migration migration_name then update-database
- After getting no errors, you run the application and test the end points by using POSTMAN
- Assumed there is only one entity User.
- JWT is used for authentication. Roles also defined into JWT.
- When user hits the register endpoint. Randomly generated verification code is sent to user specified email.
- Login request returns the JWT token. Use it for the authenticated operations. Just select bearer token in POSTMAN
- Authentication controller is anonymous. User controller requires authentication.
- Resetting password is assumed as there is a page for resetting password. In request body, reqired data is stored
- Updating user pasword is different operation, hadnled differently.
- There are all CRUD operations for user. Only delete endpoint is authorized
- Admin operations also authenticated with JWT.
- There are any unit tests. All functionalities are tested manually.