Как передать пользовательскую информацию из средства проверки подлинности App Engine в конечную точку?

Я ссылаюсь на удивительный ответ @MinWan в этом постеКонечные точки Google Cloud и аутентификация пользователягде он описывает способ добавления пользовательских заголовков в запрос к облачным конечным точкам App Engine.

Становится ясно, что мы можем добавить пользовательский заголовок и написать аутентификатор для каждой службы (например, Google, Twitter, Facebook), в отношении которой мы хотим выполнить аутентификацию, где каждый аутентификатор считывает определенный заголовок и аутентифицируется по службе. Если токен действителен, служба обычно возвращает ответ с адресом электронной почты или идентификатором пользователя, а также некоторой дополнительной информацией [A], из которой мы генерируем com.google.api.server.spi.auth.common.User, который позже передается в метод конечной точки как com.google.appengine.api.users.User.

Первый вопрос: почему у нас есть две разные сущности пользователя, например, пользователи с разными пространствами имен? Как кажется, это не подклассы / суперклассы, поэтому они, возможно, явно выбрасываются за кулисы.

Второй вопрос: проблема, связанная с явным приведением сущности User и отсутствием настраиваемого поля, в которое я мог бы поместить дополнительную информацию [A], возвращаемую службой, заключается в том, что дополнительная информация теряется. Такая дополнительная информация может быть полезна для сопоставления пользователя oauth2 внешней службы с локальным пользователем или с пользователями oauth2, возвращенными другими службами.

Любой вклад? Каков рекомендуемый способ обработки нескольких служб аутентификации?

Ответы на вопрос(2)

Ваш ответ на вопрос