Build an Authorization Server you own this product

basic Node.js • basic HTML, specifically forms
skills learned
generate RSA key pairs • generate secure, random string values using OpenSSL • displaying simple views using Express.js
Josh Cunningham
1 week · 6-8 hours per week · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!


5, 10 or 20 seats+ for your team - learn more

Look inside

After six years of accepting only internal submissions, PrincipalStack’s cofounder would like to invite all community members to register, log in, and post comments. As the sole engineer for the publication, your task is to build the foundation for this entire system: the authorization server. Using Express on Node.js, you’ll install, configure, and test an OpenID Connect-capable authorization server. You’ll build the pages that let users create their profile, prove their identity, and end their session. You’ll also foster community participation by allowing users to log in with an email address—and without a password.

This project is designed for learning purposes and is not a complete, production-ready application or solution.

project author

Josh Cunningham

Josh Cunningham is a staff product engineer at Okta (formerly Auth0) leading a team of engineers to help partners build identity solutions. Previously, he led the onboarding program for new engineers and built open-source SDKs to help customers connect their applications to Auth0 using OpenID Connect, OAuth2, and SAML. Josh has been teaching and writing about technology for over two decades in various leadership, design, and engineering roles.


This liveProject is for intermediate JavaScript developers with some experience building or maintaining a web application using Node.js. To begin these liveProjects you’ll need to be familiar with the following:

  • Basic JavaScript (declare variables, use loops and branches, object and array destructuring, debugging, error handling, etc.)
  • Basic Node.js (including npm and Express.js)
  • Basic command line/terminal proficiency
  • Intermediate in-browser development tool use (such as network call tracing including URL parameters and request headers, plus cookie management)
  • Basic HTML, specifically forms


You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.

choose your plan


only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Build an Authorization Server project for free