Summary
You should now have a solid understanding of how JWT works, how to use TypeScript for safe data handling, and how to build extendable services. In this chapter, we defined a User
object that we can hydrate from or serialize to JSON objects, applying object-oriented class design and TypeScript operators for safe data handling.
We leveraged OOP design principles, using inheritance and abstract classes to implement a base auth service that demonstrates the Open/Closed principle.
We covered the fundamentals of token-based authentication and JWTs so that you don’t leak any critical user information. You learned that caching and HTTP interceptors are necessary so that users don’t have to input their login information with every request. Following that, we implemented an in-memory auth service that doesn’t require any external dependencies, which is great for testing.
Coming up, in Chapter 6, Implementing Role Based Navigation, we will build a dynamic...