Несколько месяцев назад я ушел из Google App Engine. Но я все еще полагаюсь на это для аутентификации, потому что мои пользователи идентифицируются по их атрибуту user_id в GAE.Перенос пользователей из Google App Engine в Google OpenID
С этой целью мои (сейчас внешние) приложения перенаправляют пользователя в приложение Google App Engine с использованием зашифрованного, подписанного и запрошенного по времени запроса на вход. Затем приложение GAE выполняет вход в систему с помощью сервиса «Пользователи» GAE. После успешного входа в систему GAE пользователь снова перенаправляется с помощью зашифрованного, подписанного и timestamped ответа на внешнее приложение. Рудиментарная реализация может быть найдена here и here. Как вы можете видеть, это очень просто и полагается на тяжелый криптографический код, что приводит к плохой производительности.
Мои внешние приложения, в данном случае приложения Django, хранят user_id в поле пароля таблицы пользователя. Помимо user_id, я получаю только адрес электронной почты от GAE для хранения имени пользователя и электронной почты в Django.
Теперь я хотел бы удалить зависимость от службы GAE. Первый подход, который приходит на ум, вероятно, заключается в том, чтобы отправить электронное письмо каждому пользователю с просьбой установить новый пароль, а затем выполнить мою собственную проверку подлинности с помощью Django.
Я бы предпочел решение, основанное на службе OpenID Google, так что для пользователя нет никакой разницы. Это также является предпочтительным, потому что мне все равно нужно отправить пользователя в Google, чтобы получить токены AuthSub для API календаря Google.
Проблема в том, что я не смог найти способ получить атрибут GAE user_id данной учетной записи Google без использования GAE. OpenID и все другие протоколы аутентификации используют разные идентификаторы.
Итак, теперь вопрос: предоставляет ли Google какой-либо API, который я мог бы использовать для этой цели, которого я еще не видел? Существуют ли другие возможные решения или идеи о том, как переносить учетные записи пользователей?
Заранее благодарен!
Спасибо за ответ. Проблема заключается в том, что пользователь мог изменить свой адрес электронной почты тем временем, например, с адреса, отличного от gmail, до gmail или другого не-gmail. Я испытал это раньше и должен был вручную предоставить пользователям возможность связаться со мной и повторно связать свою старую учетную запись и связанные с ней данные. User_id - это статический идентификатор, который никогда не изменяется, и я действительно хотел бы убедиться, что никто не останется позади. – mback2k