---
title: Introduction to the Advanced Node and Express Challenges
block: advanced-node-and-express
superBlock: quality-assurance
---

## Introduction to Advanced Node and Express Challenges

_Authentication_ is the process or action of verifying the identity of a user or process. Up to this point you have not been able to create an app utilizing this key concept.

The most common and easiest way to use authentication middleware for Node.js is [Passport](http://passportjs.org/). It is easy to learn, light-weight, and extremely flexible allowing for many _strategies_, which we will talk about in later challenges. In addition to authentication we will also look at template engines which allow for use of _Pug_ and web sockets which allow for real time communication between all your clients and your server.

Working on these challenges involves writing code on Replit in our starter project.

- Start by importing the project on Replit.
- Next, you will see a <code>.replit</code> window.
- Select <code>Use run command</code> and click the <code>Done</code> button.
- Complete each challenge and copy the public Replit URL (to the homepage of your app) into the challenge screen to test it!

Optionally, you may write your project on another platform, but it must be publicly visible for our testing.

Start this project on Replit using [this link](https://replit.com/github/freeCodeCamp/boilerplate-advancednode) or clone [this repository](https://github.com/freeCodeCamp/boilerplate-advancednode/) on GitHub! If you use Replit, remember to save the link to your project somewhere safe.
