Пользовательский токен QuickBase для замены учетных данных / разрешений текущего пользователя - PullRequest
1 голос
/ 08 мая 2019

У меня есть пользовательская кнопка, которая запрашивает и, возможно, обновляет приложение администрирования в QuickBase, доступ к которому текущему пользователю не требуется.

У меня есть код JS, который выполняется по нажатию кнопкипользователь для проверки приложения администратора и т. д.

мой вызов API для проверки приложения имеет соответствующий apptoken и usertoken.Тем не менее, в браузере по-прежнему кэшируется сеанс текущего пользователя, поэтому вызов API вызывает сообщение об ошибке «Отказано в доступе».

Я ищу способ создания скрытого окна инкогнито, чтобы затем выполнить этокод или способ проблематично заставить пользовательский токен заменить текущие права доступа / разрешения пользователя.

Я видел, где расширения chrome могут использовать chrome.windows.create ... но у меня нет опыта работы с расширениями,и в идеале я не хочу иметь расширение только для этой функциональности, и, возможно, мне придется установить его на ПК каждого пользователя, чтобы это работало ...

Вот фрагмент моего текущего кода... Этот код работает, если у кого-то есть разрешения на приложение администрирования ... но этот код находится в другом приложении:

    PreProcURL = "https://<domain>.quickbase.com/db/<dbid>?a=API_DoQuery&apptoken=<>&usertoken=<>&query={'3'.EX.'1'}";
    PreProcQuery.open('GET', PreProcURL, 'async');
    PreProcQuery.send();
    PreProcQuery.onload = function(){
        console.log(PreProcQuery.responseXML);
        RunBit = (PreProcQuery.responseXML.documentElement.getElementsByTagName("runbit"))[0].innerHTML;
        SupportData = (PreProcQuery.responseXML.documentElement.getElementsByTagName("supportdata"))[0].innerHTML;
    if(RunBit != "1"){
        $.get("https://<domain>.quickbase.com/db/<dbid>?a=API_EditRecord&rid=1&_fid_6=1&_fid_7="+rid+"&apptoken=<>&usertoken=<>");
    }else{
        if(SupportData == rid){
            alert("This PreProc File is already in progress... please wait.");
        }else{
            alert("Another PreProc is already in progress... please wait.");
        }
    }        
    };

Заранее благодарим за любую помощь по этому вопросу.

1 Ответ

0 голосов
/ 09 мая 2019

API-вызовы, выполняемые в JavaScript, размещенном на quickbase.com (кнопка, страницы и т. Д.), Будут выполняться так же, как и вошедший в систему пользователь, который запустил скрипт. Пользовательский токен игнорируется.

Самый распространенный способ выполнить то, что вам нужно, - это написать код API_DoQuery на стороне сервера и затем запустить его из своего кода JS.

...