Экран повторной аутентификации при использовании имени пользователя и пароля - PullRequest
3 голосов
/ 18 июня 2020

Я пишу коннектор для Datastudio и решил go для аутентификации по имени пользователя и паролю. Мои функции isAuthValid, setCredentials и getAuthType:

var cc = DataStudioApp.createCommunityConnector();

function isAuthValid() {
  const properties = PropertiesService.getUserProperties();
  const username = properties.getProperty('dscc.username');
  const password = properties.getProperty('dscc.password');
  console.log(username);
  console.log(password);
  return !!(username && password);
}

function setCredentials(request) {
  const isCredentialsValid = !!(request.userPass.username && request.userPass.password);
  console.log('username: ' + request.userPass.username);
  console.log('password: ' + request.userPass.password);
  if (!isCredentialsValid) {
    return {
      errorCode: "INVALID_CREDENTIALS"
    };
  }
  PropertiesService.getUserProperties()
    .setProperty('dscc.username', request.userPass.username)
    .setProperty('dscc.password', request.userPass.password);
  return {
    errorCode: "NONE"
  };
};

function getAuthType() {
  return cc.newAuthTypeResponse()
    .setAuthType(cc.AuthType.USER_PASS)
    .build();
}

function resetAuth() {
  const userProperties = PropertiesService.getUserProperties();
  userProperties.deleteProperty('dscc.username');
  userProperties.deleteProperty('dscc.password');
}

Он работает, но почти всегда после первой попытки снова появляется экран пароля для входа.

В журналах я вижу, что setCredentials вызывается с правильные аргументы, а затем isAuthValid с именем пользователя и паролем, равными нулю. После второй попытки isAuthValid вызывается правильно с ожидаемыми аргументами.

Кто-нибудь знает, почему он так себя ведет?

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