Google Picker в сценарии многопользовательской учетной записи (требуется вход в систему, даже если в него передан токен OAuth) - PullRequest
0 голосов
/ 05 декабря 2018

В моем приложении одна и та же учетная запись приложения (компании) может быть доступна нескольким пользователям (сотрудникам).

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

Я сохраняю и (повторно) использую токен обновления для получения пропущенного токена доступав сборщик используя .setOAuthToken().

createPicker: function (workingFolderId) {
    var view = new gapi.picker.api.DocsUploadView();
    view.setParent(workingFolderId);

    var picker = new gapi.picker.api.PickerBuilder()
        .enableFeature(gapi.picker.api.Feature.NAV_HIDDEN)
        .enableFeature(gapi.picker.api.Feature.MULTISELECT_ENABLED)
        .addView(view)
        .setAppId("CLIENT_ID")
        .setOAuthToken("ACCESS_TOKEN")
        .setDeveloperKey("API_KEY")
        .setCallback(function (data) {
            //handle uploaded files
        })
        .setLocale("sk")
        .setOrigin(window.location.protocol + '//' + window.location.host)
        .setRelayUrl(window.location.protocol + '//' + window.location.host + "/handlers/rpc_relay.html")
        .build();
    picker.setVisible(true);
}

Но когда пользователь не вошел в учетную запись Google в браузере, средство выбора отображает запрос на вход, что является бессмысленным, поскольку пользователь прошел аутентификацию по токену доступа.

Google sign in prompt

Знаете ли вы какой-нибудь обходной путь?

...