Есть стандарты для этого.Один называется oauth2 https://oauth.net/2/. Этот очень мощный и может быть слишком сложным в зависимости от варианта использования.Более простое решение может быть основано на аутентификации на основе токенов JWT: https://jwt.io/introduction/
Аутентификацию легко ошибиться, и это может привести к потере данных клиента.Поэтому я бы рекомендовал использовать фреймворк, который поддерживает ваш сценарий использования, после того, как вы по-настоящему поймете их документацию.