Доступ к заголовкам прокси-сервера с поддержкой идентификации Google (IAP) с помощью Javascript

#javascript #google-app-engine #http-headers

# #javascript #google-app-engine #http-заголовки

Вопрос:

В настоящее время мой экземпляр App Engine защищен с помощью прокси-сервера с поддержкой идентификации (IAP). Приложение представляет собой одностраничное приложение и не имеет серверной части, Поэтому не использует python и т. Д. Возможно ли по-прежнему получать доступ к X-Goog-Authenticated-User-Email заголовку, а затем делать что-то на его основе?

Я пробовал этот код для доступа к заголовкам в консоли, но его там нет:

 var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
alert(headers);
 

В идеале у меня должен быть некоторый код в одном из моих JS-файлов в следующих строках:

 if X-Goog-Authenticated-User-Email == 'PersonA' then do this
else do this
 

Комментарии:

1. Если пользователь аутентифицирован, то ваш клиентский код (JavaScript браузера) знает, кто этот пользователь, или может получить эту информацию через область профиля OAuth. (Область применения: googleapis.com/auth/userinfo.email ) Узнайте больше здесь: developers.google.com/identity/protocols/oauth2/scopes

Ответ №1:

X-Goog-Authenticated-User-Email доступен только на стороне сервера. Вы не можете получить доступ к этому заголовку на стороне клиента.

Ответ №2:

Эта информация доступна в заголовке вашего запроса. Поэтому, если вы используете express, вы можете извлечь его из объекта req и сохранить содержимое в переменной. Запустите свою логику через это. ** Редактирование моего ответа, чтобы добавить некоторый контекст **, чтобы вы могли сделать это

 var reqHeader = req.get('x-goog-authenticated-user-email'); 
// all ID's will have the prefix "acccounts.google.com:" - 
 

поэтому вам нужно будет проверить, хотите ли вы так запускать свою логику, или вы можете отредактировать заголовок для извлечения электронного письма.