Skip to main content

Integrate Auth0 In Node.Js


In this blog, you’ll learn how to create a simple and secure Node.js application with the Express web framework by integrating auth0 API’s in the application.

Prerequisites
  • Basic understanding of Node.js and JavaScript.
  • A terminal app for MacOS and Linux or PowerShell for Windows.
  • Node.js v8+ and a Node.js package manager installed locally.



To install Node.js and NPM, use any of the official Node.js installers provided for your operating system.

Create a new Node.js project using Express generator:


  • Install express generator globally on your system.
  • Create a new project using express engine, if you are not a admin user, then you may need admin access for writing files into the directory.




  • After creating a new project, route into the project directory


  • Install the project dependencies
  • There may be chances that you will find some vulnerabilities while installing the project dependencies but don’t worry just run the below command to fix all the vulnerabilities. If there is still some vulnerability left in the code, just remove that package from the package.json file from the root of your project and again run the npm install command.


  • Run the app server using node


  • To see the app is running or not, visit http://localhost:8042 on any browser.

Signing up for a free auth0 account:

  • During the sign-up process on auth0.com, you’ll need to create a Tenant, which represents your domain and then enter all the details related to your account and select the correct region.
  • Create a new Application “MyAPP” from the dashboard page and choose its type as Regular Web Application and technology as Node.js

a) Copy auth0 configuration variables (client  id, client secret and domain) and add them in our Node.js application by creating a hidden file called .env under root project directory to store configuration variables and add this file to gitignore.



b) Choose POST method in Token Endpoint Authentication Method

c) Click on Advance settings at the bottom of the tab, then open Grant types tab and then choose Client Credentials, Password and MFA Grant type as checked
  • Open Connection -> Database from the navigation panel on the dashboard

a) Create a new Database connection as “MyDB” and use this name in the env file of the project



b) Click on Applications tab from the same panel and then choose your newly created Application “MyAPP” from the list.
  • Open APIs from the navigation panel on the dashboard

a) Open default Auth0 Management API and go to Machine to Machine Applications tab

b) Select your “MyAPP” (newly created) application as checked and choose all the permissions according to your requirement.

All the information stored in the env file must be kept confidential at all times.

Now all the settings are setup on the auth0 panel, now use the environment variables in our app.

Or Visit to hire dedicated node js developers

Setting up user authentication in Node.js project

  • To start, you need to create a login and signup GET request endpoints.
  • Create a new mongo database on your local server and use its credentials in the database model in the project files.


  • To connect your app with Auth0, you’ll use the Node.js SDKs. So, install the auth0 project dependency using terminal.


  • Use express-session npm package to store the user’s session whenever he is logged in. Configure all the details for express-session in the project.
  • Modify the signup screen according to your requirement. This screen automatically comes with default express generator setup. Now create a post route for the signup page and implement auth0 AuthenticationClient database signup process for it. Below function will create a new user on auth0.


  • Now modify the login screen according to your requirement. This screen will also comes with default express generator setup. Then create a post route and its middleware in the project. Add a auth0 password grant request to validate the users credentials.


  • Auth0 AuthenticationClient password grant will invokes with the authentication data as arguments like idToken, accessToken, refreshToken, etc which will be used in the project for further authentication.
  • As Auth0 does all the credential validation for you, so there is no need for storing the password in our database.

Logging into a Node.js Express app

  • Open the browser tab where your application is running and click the login button to test that the app is communicating correctly with Auth0
  • If you’ve set up everything correctly, the application redirects you to the Universal Login page



Auth0 Integration Completed


That’s it! In this blog, you have learned how auth0 will interact with our Node.js express project, how to configure all the settings on auth0 dashboard. You can clone this project from our version control.



Thank you for your time!

Published at JS Panther Programmers Integrate Auth0 In Node.Js





Comments

Popular posts from this blog

5 Reasons To Develop Your Next Web App With Angular

Web app development is creating ripples in the current marketplace. Though web and mobile apps have been around for quite a long time, they are becoming indispensable with each passing day – with both businesses and customers realizing how crucial they are for them. This, in turn, has intensified the demand for developers and their capabilities. However, one dilemma that developers face is the platform they should choose for app creation. Because there is a multitude of platforms available for web-based application development, the choice is not always easy. Fortunately, one platform you can choose to make sure you’re going in the right direction is AngularJS. First introduced in 2009, the framework has gained huge traction over the years for eliminating unnecessary code and ensuring lighter as well as faster apps. In a collection of structures that are often too complex and challenging for developers to build in, Angular has served as a complete package to build phenomenal apps. S...

Top Features Of Angular 8

Google has finally released its latest Angular 8 version a few weeks ago. The latest version has bought a multitude of attractive features that have made Angular 8 unique compared to its previous versions. Also, the Angular team has gone several steps closer to the final release of Angular 9. In this blog, we will discuss the top features of Angular 8. What’s New in Angular 8 Within the span of seven years, Google has subsequently and frequently released updated versions of the Angular framework. This indicates its devotion to providing a highly secure, advanced and contemporary web development framework for modern requirements. Angular is the most popular front-end development program for building mobile apps, desktop apps and SPAs. The Angular 8.0 has brought with itself an impressive list of changes and improvements. Let’s explore some of the significant features of Angular 8.0 Differential Loading of Modern JavaScript One of the significant aspects of custom web application is that...