Рабочий стол надстроек Outlook- показать диалоговое окно google oauth 2

#javascript #outlook #google-oauth #outlook-web-addins #zoom-sdk

Вопрос:

Я пытаюсь реализовать функциональность для входа в Google из надстройки Outlook. В веб-версии outlook все работает хорошо, но с рабочего стола я не могу найти способ открыть Sign in with Google всплывающее окно. Вместо этого он просто открыл новую вкладку в браузере.

https://developers.google.com/identity/sign-in/web/reference

пример кода:

 gapi.auth2.authorize({
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}, function(response) {
  if (response.error) {
    // An error happened!
    return;
  }
  // The user authorized the application for the scopes requested.
  var accessToken = response.access_token;
  var idToken = response.id_token;
  // You can also now use gapi.client to perform authenticated requests.
});
 

Я вижу, что надстройка масштабирования для outlook показывает это всплывающее окно, так что есть идеи, как это сделать?
введите описание изображения здесь
Спасибо!

Ответ №1:

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

Без строки URL-адреса в верхней части страницы кто-то может создать страницу, которая выглядит как экраны входа и согласия google, а затем пользователь будет вводить свой логин и пароль на потенциально вредоносный сайт.

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

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

1. да, вы правы. но вопрос в том, как zoom сделал это со своей собственной надстройкой и как мы можем сделать то же самое 🙂 В случае входа в систему с Microsoft он хорошо работает с библиотекой аутентификации Microsoft javascript по умолчанию.

2. Вероятно, они используют OpenID connect Для аутентификации. Где, как вы используете Oauth2 для авторизации. Проверьте, что вход в Google не тот же самый.

3. Я считаю, что Zoom вызывает DisplayDialogAsync ( docs.microsoft.com/en-us/javascript/api/office/… ) и указывая на zoom.us/office365/login (по крайней мере, с вашего скриншота)