#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:" -
поэтому вам нужно будет проверить, хотите ли вы так запускать свою логику, или вы можете отредактировать заголовок для извлечения электронного письма.