У меня есть Google Web App для школы, в которой есть домен для G Suite, т.е. адреса электронной почты: @ theschool.org. Приложение подключено к электронной таблице, содержащей белый список адресов электронной почты (учителей в школе), которым разрешен доступ к приложению. Все остальные получают сообщение «Отказано в доступе» при загрузке страницы. Сценарий использует Session.getEffectiveUser().getEmail()
для получения электронной почты пользователя и сравнения ее со списком.
Некоторые пользователи используют персональные устройства или устройства Chromebook, когда они входят в свою личную учетную запись Gmail и учетную запись домена школы. Некоторые эксперименты показали, что в этой ситуации Session.getEffectiveUser().getEmail()
и Session.getActiveUser().getEmail()
всегда возвращают адрес электронной почты для учетной записи, которая была зарегистрирована в first , что означает, что пользователям отказывают в доступе, даже если они вошли в систему. (позже) с их учетной записью в белом списке. В настоящее время они должны выйти из всех учетных записей, а затем войти в школьную учетную запись, чтобы получить доступ.
Я хотел бы получить список всех адресов электронной почты, с которыми в данный момент зарегистрирован пользователь, поэтому я могу проверить, есть ли любой из них в белом списке, избегая необходимости выходить из системы и входить обратно. Есть ли способ сделать это в скрипте приложений?
Документация Google накласс User и класс Session ничего не говорят о нескольких учетных записях.