The first thing to consider is: do you really need to build your own authentication system?
Facebook, GitHub, Google and others offer mature OAuth implementations. Third-party service
providers like Auth0 securely store credentials on your behalf. Integrating with an identity
provider like Okta or OneLogin allows your clients to keep control of their identity data.