Use Node.js
, Express
and Knex
to build an API with authentication and authorization using JSON Web Tokens.
Write the following auth middlewares inside api/auth/auth-middleware.js
:
-
restricted
-
only
-
checkUsernameExists
-
validateRoleName
Authentication will be implemented using JSON Web Tokens.
Write the following endpoints inside api/auth/auth-router.js
:
-
[POST] /api/auth/register
-
[POST] /api/auth/login
The endpoints inside api/users/users-router.js
are built already but check them out:
-
[GET] /api/users
- only users with a valid token can access -
[POST] /api/auth/login
- only users with a role of 'admin' can access
Complete the secrets/index.js
file.
field | data type | metadata |
---|---|---|
user_id | unsigned integer | primary key, auto-increments, generated by db |
username | string | required, unique |
password | string | required |
role_id | unsigned integer | foreign key, required |
field | data type | metadata |
---|---|---|
role_id | unsigned integer | primary key, auto-increments, generated by db |
role_name | string | required, unique |
- Run tests locally executing
npm test
. - The project comes with
migrate
,rollback
andseed
scripts in case you need to reset the database. - You are welcome to create additional files but do not move or rename existing files or folders.
- Do not alter your
package.json
file except to install extra libraries or add extra scripts. - In your solution, it is essential that you follow best practices and produce clean and professional results.
- Schedule time to review, refine, and assess your work.
- Perform basic professional polishing including spell-checking and grammar-checking on your work.
- Build a React application that implements components to register, login and view a list of users. Gotta keep sharpening your React skills.