authentication and authorization

Authentication is about assigning role to request.

Authorization is about permission depending on the role.

Middlewares are usually used for authentication and authorization