React: Authentication (2021)
5h 13mAdvanced2021-06-28
Authors

Shaun Wassell
Full-Stack Software Developer
Course details
User authentication is a critical part of virtually every website, yet few web developers know all the details behind how it works and how to use it to provide a good user experience. In this course, instructor Shaun Wassell dives into the details behind user authentication in the context of React and how to incorporate user authentication into React applications. Shaun begins with some definitions, steps, and basic authentication projects. Then he discusses in-depth email verification and how to set it up. Shaun explains how to give users the ability to reset their passwords, then describes the steps in setting up OAuth. He goes over several prebuilt authentication options, then concludes with some best practice recommendations.
Skills covered
React.jsMetaFront-End Web DevelopmentWeb DevelopmentDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Take advantage of React authentication
- 02 - What you should know
- 03 - The structure of this course
1. User Authentication Basics
- 04 - What is user authentication
- 05 - Basic project setup
- 06 - Building a login page
- 07 - Building a sign-up page
- 08 - Creating private React routes
- 09 - JSON Web Token basics
- 10 - Adding a sign-up route to the server
- 11 - Generating JSON Web Tokens
- 12 - Adding a login route to the server
- 13 - Implementing JWTs on the front end
- 14 - Adding JWTs to sign-up page
- 15 - Adding JWTs to login page
- 16 - Adding an update user route
- 17 - Verifying JSON Web Tokens
- 18 - Adding JWTs to the user info page
- 19 - Adding logout functionality
2. Email Verification
- 20 - The basic email verification process
- 21 - Setting up an email provider
- 22 - Sending emails from Node
- 23 - Integrating verification tokens
- 24 - Creating a verify email page
- 25 - Adding a verify email route
- 26 - Creating a verification landing page
- 27 - Handling successful and failed verifications
3. Resetting Passwords
- 28 - The basic password reset process
- 29 - Adding a forgot password page
- 30 - Sending a reset password email
- 31 - Creating a reset password landing page
- 32 - Handling password reset success and failure
- 33 - Adding a reset password server endpoint
4. OAuth
- 34 - OAuth basics
- 35 - Setting up OAuth on Google
- 36 - Adding an OAuth URL route
- 37 - Creating a Sign in with Google button
- 38 - Loading user info from Google
- 39 - Creating new users from OAuth data
- 40 - Adding an OAuth callback route
- 41 - Handling successful OAuth authentication
5. Prebuilt Authentication Options
- 42 - Amazon Cognito basics
- 43 - Setting up an AWS Cognito project
- 44 - Creating a user pool in Node.js
- 45 - Converting the sign-up endpoint to AWS
- 46 - Converting the sign-up page to AWS
- 47 - Modifying the email verification flow
- 48 - Converting the verify email route
- 49 - Converting the login route
- 50 - Converting the forgot password route
- 51 - Rewriting the reset password endpoint
- 52 - Converting the reset password page
6. Best Practices
- 53 - Using HTTPS and SSL
- 54 - Salting and peppering passwords
- 55 - Never trust the front end
- 56 - Authentication error handling
- 57 - Catching and handling errors
- 58 - Securing your database
Conclusion
- 59 - Conclusion and next steps
Related courses
- Build a Full-Stack JavaScript Application Using AWS Amplify
- React: Authentication
- Building React and ASP.NET Core Applications
- React: Securing Applications
- React: Cloud-Powered Apps with Firebase
- React: Creating and Hosting a Full-Stack Site (2022)
- React: SPAs (2018)
- React: Creating and Hosting a Full-Stack Site
Related learn paths
- Explore React.js Development
- Improve Your React Skills
- Explore App Development with the MERN Stack
- Prepare for the AZ-203 Developing Solutions for Microsoft Azure Exam
- Prepare for the Azure Developer Associate (AZ-204) Certification
- Optimizing Enterprise Security and Productivity Using Microsoft 365
- Advance Your Skills as a Django Developer
- Explore Web Development with Vue.js