我有一个自定义按钮,可以查询并可能更新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.");
}
}
};
在此先感谢您的协助。
答案 0 :(得分:0)
API调用将以触发脚本的登录用户身份运行。用户令牌被忽略。
完成任务的最常见方法是在服务器端位置编写API_DoQuery代码,然后从JS代码中触发它。