Building Authentication with Node.js and MySQL


Today marks the beginning of my personal full-stack development project, where I aim to build a secure and functional web application from the ground up.
🔐 Authentication and Authorization
My first goal was to implement user authentication and authorization. I chose the following technologies:
Node.js and Express: For building the backend REST API.
bcrypt: To securely hash user passwords.
JWT (JSON Web Tokens): For managing user sessions and access tokens.
MySQL: As the database for user data storage.
These tools allowed me to create secure user registration and login functionalities, with hashed credentials and token-based access control.
🐳 Self-Hosted MySQL on Raspberry Pi
To keep this project cost-effective and self-contained, I avoided using cloud-based databases. Instead, I took a hands-on approach by setting up a MySQL server inside a Docker container on my Raspberry Pi. This lightweight, energy-efficient setup is ideal for development and testing environments, giving me complete control over my data.
✅ What’s Next
In the upcoming phase, I plan to add:
Appointment Scheduling Features: Users will be able to create, update, and manage their appointments.
Protected Views: Only authenticated users will have access to specific parts of the application.
This project is not only helping me deepen my backend skills but also teaching me about self-hosting and system configuration.
Subscribe to my newsletter
Read articles from Chris Tiquis directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
