Quickbase用户令牌以取代当前的用户凭据/权限

时间:2019-05-08 14:31:27

标签: javascript quickbase

我有一个自定义按钮,可以查询并可能更新Quickbase中的管理应用程序,当前用户不需要访问该应用程序。

我有JS代码,该代码是在用户单击按钮以检查管理应用程序等时执行的。

我的API调用以检查应用程序是否具有适当的apptoken和usertoken。但是,浏览器仍会缓存当前用户的会话,因此API调用会出错并显示访问被拒绝的错误消息。

我正在寻找一种方法来制作一个隐藏的隐身窗口,然后执行此代码,或者是一种有问题地迫使用户令牌取代当前用户访问权限的方法。

我已经看到了chrome扩展可以在哪里使用chrome.windows.create ...,但是我没有扩展的经验,理想情况下,我不想仅为此功能扩展,而不必可能将其安装在每个用户的PC上,以使其正常工作...

这是我当前代码的摘要...如果某人拥有管理应用程序的权限,则此代码有效...但是此代码位于其他应用程序中:

    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 :(得分:0)

在quickbase.com(按钮,页面等)中托管的JavaScript中执行的

API调用将以触发脚本的登录用户身份运行。用户令牌被忽略。

完成任务的最常见方法是在服务器端位置编写API_DoQuery代码,然后从JS代码中触发它。