Chapter 7: Managing User Sessions
At this point, our app is manipulating data in a proper database by clicking buttons on the view. However, anyone who comes across our app can also edit the data. While our app is not the type of app that would require a lot of security, it is an important concept to understand and practice in general web development.
In this chapter, we will build a system that creates users. It will also manage user sessions by requiring the user to log in before they can alter any to-do items through the frontend app.
In this chapter, we will cover the following topics:
- Creating user data models with relationships with other tables with unique constraints of certain fields via database migrations
- Hashing and checking passwords, and JSON Web Tokens (JWTs)
- Logging users in and out of the app
- Storing auth credentials in the browser and passing them with every API call
- Managing user sessions
Let's get started!