Как заставить пользователя войти в Google для доступа к развернутому веб-приложению GAS? - PullRequest
0 голосов
/ 24 января 2019

У меня есть Google App Script Web App. Я хочу сделать обязательным ввод с учетными данными Google. Я хотел бы, чтобы каждый новый запрос был «одобрен» администратором, отправив запрос на учетную запись по электронной почте администратору, а затем разрешил пользователю доступ к веб-приложению только после того, как администратор одобрил запрос. Я также хочу сослаться на пользователя сеанса на основе учетных данных Google.

Я перешел к этому руководству и, следуя окну CONFIGURE PROJECT, не смог ввести URL-адрес веб-приложения, поскольку Invalid Origin: URIs must not contain a path or end with "/".

Этот является URL-адресом моего веб-приложения.

Это веб-приложение предназначено для максимум 5 человек.

function doGet(){
   //Basic for now: 
   return HtmlService.createHtmlOutputFromFile('mainhtml');
}

Как предоставить пользователю кнопку Sign in with Google, а затем отправить этот запрос администратору с помощью GmailApp.sendEmail('admin@email.com', 'Request to join', )

Затем разрешите пользователю доступ к сайту после того, как администратор принял запрос.

1 Ответ

0 голосов
/ 24 января 2019

Это руководство используется для интеграции Google Auth с веб-сайтом, не принадлежащим Google. Чтобы принудительно аутентифицировать пользователя (способ Google), просто разверните свое веб-приложение GAS с текстом «У кого есть доступ к приложению: любой ». Будьте внимательны, чтобы не выбрать «кого-либо, даже анонимного», который разрешает доступ пользователю, не подключенному к Google ...

Тогда, чтобы удовлетворить «потребность в проверке администратором», я не вижу другого способа, чтобы кодировать его самостоятельно:

function doGet(){
   //Control user
   var contentToDisplay;
   if(userIsOk()) { contentToDisplay = HtmlService.createHtmlOutputFromFile('mainhtml');
   } else { 
      sendRequestToAdmin();
      contentToDisplay = HtmlService.createHtmlOutputFromFile('forbiddenhtml'); }
   return contentToDisplay;
}

Затем вы можете представить, что вы хотите в "sendRequestToAdmin ()" и "userIsOk ()". Например, вы можете искать электронную почту пользователя в электронной таблице, в которой перечислены все разрешенные пользователи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...