-
Notifications
You must be signed in to change notification settings - Fork 0
Components
In this part, the main components and their advantages for our project are presented.
Node.JS is javascript framework, which uses Chromes V8 engine as their runtime environment.
It is easily extendable with the package manager npm
.
We choose Node.JS as our backend framework, as Javascript is already used by the frontend, and therefore the project uses only one programming language.
This leads to a more consistent and easier to maintain codebase.
TypeORM is a object relational mapping library, which converts and save JSON-Objects into a database. It drastically simplifies the interaction with the database, which saves time and reduces the complexity of the whole project.
Express is a web application framework, which is the de-facto standard for creating a web application.
argon2 is the package, which implements the hashing algorithm argon2
.
argon2
is the winner of the Password Hashing Competition.
For authentication and authorization we choose to use signed JWTs.
Instead of saving sessions on the server, the server will create and sign a JWT on a new user login.
The JWT is send with every request and used for authentication.
JWTs can be a part in a RESTful-System, as the session is entirely stored on the client-side. The information inside the payload of the JWT can be easily used by the frontend and the backend. The authenticity of the JWT can be easily verified with the use of signed JWTs.
PostgreSQL is a relational database management system. It supports a variety of data types.