๐Ÿ“Š We use cookies & analytics to improve your experience. Learn more
Latest

Full-Stack Web Development Bootcamp Module 3 ยท Lesson 9 of 15

0% Exit to course

Module 3 ยท The server: Node, Express and the database Lesson 9 of 15

Authentication done properly

Learning objective

Never store a password. Hash it, and never invent your own hashing or your own session scheme.

The concept

Authentication means the server knows who is asking. You store an email and a HASH of the password โ€” bcrypt โ€” never the password itself, so a stolen database does not hand over everybody's accounts. On a successful login you issue a token or a signed session, and the client sends it with every later request.

Authorisation is the second half and the one freshers forget: being logged in is not the same as being allowed. Before any write, check that the record belongs to this user โ€” if (job.user_id !== req.user.id) return res.status(403). Skipping that check is how one user deletes another's job, and it is the first thing a reviewer looks for in a portfolio project.

Common mistakes

The mistake is protecting pages in the front end and trusting that. Hiding a button is a user-interface decision; anyone can call the endpoint behind it. Every rule belongs on the server, and the front end only decides what to show.

Worked example

bcrypt.hash(password, 10) on sign-up and bcrypt.compare(password, stored) on sign-in โ€” two lines that replace the plain-text password mistake that gets projects rejected.

Your practice task

Add sign-up and sign-in to your API, store only the hash, and write one protected endpoint that refuses a request without a session.

Do this before moving on. Reading a solution teaches the shape of it; typing it teaches you.

Key takeaway

Authentication means the server knows who is asking.

Create free account or sign in

Almost there

15 lessons left of 15

Finish every lesson to unlock the certificate. Each one ends in a practice task โ€” do them and the final project brief writes itself.

Next recommended course Data Analytics with SQL & Excel