👨💼 Hello, my name is Peter the Product Manager. I'm here to help you get oriented and to give you your assignments for the day. We're going to have you working on authentication for the Epic Notes app today.
So far any user can edit all the notes, even if they're not logged in! Obviously we need to give users an opportunity to create accounts and then lock down their data to their account. Throughout the workshop, you'll learn important foundational skills of full stack development like:
- Storing user preferences in cookies
- Using session storage and the "flash" pattern
- Using cookies to identify users
- Managing and safely storing passwords
- Securely validating passwords
- Managing logout and session expiration ("remember me")
- Locking down UI and backend routes
- Support Role-Based Access Control (RBAC)
- Support server-managed sessions
- Sending emails to users
- Building cryptographically secure verifications
- Support "forgot password" and reset password flows
- Supporting securely changing emails
- Adding two-factor authentication (2FA)
- Support verifying 2FA codes
- Securely disabling 2FA
- Supporting OAuth (social login)
- Handling Connection Errors
- Supporting Third Party Login
- Connection Management
- Redirecting third party logins with redirect Cookies
It's a big job and there's lots to do, so, let's get started!
Over time, some things may change in the workshop material from the videos you watch. You can learn about these changes in the `CHANGELOG.md` file of the repo.