Кнопка Создать учетную запись всегда собирается браузером, вошедшим в учетную запись Gmail. Как он всегда будет запрашивать у Google разрешение? - PullRequest
0 голосов
/ 24 января 2020

Сценарий проекта:

На целевой странице проекта нажмите Создать новую учетную запись -> Установить ту же учетную запись, которая была настроена ранее.

Наблюдение:

Переадресован на целевую страницу, а скорее с сообщением о валидации

Если вы авторизуетесь по первому электронному адресу xyz@gmail.com. Итак, он вошел в систему. Теперь ваш браузер синхронизирован с этой учетной записью Gmail.

Теперь вы собираетесь Создать новую учетную запись для новой электронной почты, например abc@gmail.com. После щелчка, он будет go до "Целевая страница" снова и будет отображать xyz@gmail.com. Поскольку ваш браузер уже синхронизирован с первой зарегистрированной учетной записью xyz@gmail.com.

Рабочая область:

Вам необходимо выйти из системы после добавления новой учетной записи для удаления браузера syn c.

Снимок кода приведен ниже:

private GoogleAuthorizationCodeFlow authFlow;
HttpServletResponse response;

GoogleAuthorizationCodeRequestUrl url = authFlow.newAuthorizationUrl();
String redirectURL = url.setRedirectUri(CALLBACK_URI).setAccessType("offline").build();
response.sendRedirect(redirectURL);

Вопрос № 1:

Есть ли другой способ всегда спрашивать окно разрешения Google

1 Ответ

1 голос
/ 24 января 2020

Я исправил проблему, добавив 'setApprovalPrompt ("force")' в URL.

String redirectURL = url.setRedirectUri(CALLBACK_URI).setAccessType("offline").setApprovalPrompt("force").build();

У меня есть go - GoogleAuthorizationCodeRequestUrl документация класса , Там у меня есть опция установки приглашения на утверждение.

i) null -> По умолчанию

ii) auto -> запрос на автоматическое утверждение

iii) force - заставить интерфейс подтверждения отображаться.

Соответствующая документация приведена ниже:

  /**
   * Sets the approval prompt behavior ({@code "auto"} to request auto-approval or {@code "force"}
   * to force the approval UI to show) or {@code null} for the default behavior of {@code "auto"}.
   *
   * <p>
   * Overriding is only supported for the purpose of calling the super implementation and changing
   * the return type, but nothing else.
   * </p>
   */
  public GoogleAuthorizationCodeRequestUrl setApprovalPrompt(String approvalPrompt) {
    this.approvalPrompt = approvalPrompt;
    return this;
  }
...