Я прочитал слишком много страниц и попробовал образцы писцов, но я упустил самый важный момент — что такое уникальный и постоянный идентификатор пользователя для аутентификации oauth?
Я хочу реализовать веб-сайт, на котором пользователь может войти в систему с помощью Google, FB, Twitter и т. д. Я ожидаю, что поток будет следующим:
- сервлет запрашивает у выбранного поставщика авторизации токен запроса
- сервлет создает URL-адрес авторизации и перенаправляет пользователя туда
- пользователь дает разрешение
- служба авторизации перенаправляет на обратный вызов и передает верификатор в качестве параметра
- сервлет обратного вызова запрашивает у поставщика авторизации токен доступа
Теперь я могу использовать этот токен доступа в API-интерфейсах провайдера, например, для просмотра Google Диска или публикации вредоносных твитов. Хорошо, но все, что я хочу, это получить какой-то идентификатор, который я могу сохранить в базе данных и связать его с учетной записью пользователя. Поэтому, когда пользователь придет в следующий раз, я смогу его узнать.
Я не думаю, что токен доступа — это то, что мне нужно. Я запускал примеры писцов, и это значение меняется с каждым вызовом.
Должен ли я найти какой-то провайдерский API, который возвращает логин пользователя и вызывать его каждый раз, когда он входит в систему? Мне не нравится эта идея, потому что это (на мой взгляд) дополнительное HTTP-соединение для каждого входа в систему. И, например, образец диска Google вернет кучу данных, когда мне нужно всего несколько символов. Я думаю, что я упускаю какой-то важный момент. Или это действительно так задумано?