rally - 来自 chrome 扩展中 POST 请求的集会“未授权执行操作:密钥无效”的间歇性错误
问题描述
我使用 Rally 的 WSAPI v2.0 开发了一个 chrome 扩展,它基本上做了以下事情:
- 获取用户和项目,并存储它们
- 每次获取当前迭代
- 发送发布请求以创建工作项
对于第三步,我有时会收到错误["Not authorized to perform action: Invalid key"]自上月底以来。
[更新]如果我在使用扩展程序通过 apikey 发送请求之前通过 SSO 登录 Rally 网站,每次都会重现错误。 由于我无法控制最终用户的习惯,在我的扩展程序中通过 apikey 发送后续请求的最佳做法是什么?
我确实看到了一些类似的帖子,但没有一个有帮助……万一它有帮助:
- 我在我的请求标头中添加 ZSESSIONID:apikey,而不是用户/密码来进行身份验证,所以我相信不需要安全令牌(https://comm.support.ca.com/kb/api-key-and-oauth -client-faq/kb000011568 )
- 网址以https://rally1.rallydev.com/slm/webservice/v2.0/开头
- 清除https://rally1.rallydev.com/的 cookie 后问题已修复 ,但不知何故它会在一段时间后再次出现
- 当问题重现时,我检查了 cookie,发现一个名为 ZSESSIONID 的 cookie,它的值变成了别的东西,而不是 apikey。不确定这是否重要...
- 请求代码:
function initXHR(method, url, apikey, cbFunc) {
let httpRequest = new XMLHttpRequest();
...
httpRequest.open(method, url);
httpRequest.setRequestHeader('Content-Type', ' application\/json');
httpRequest.setRequestHeader('Accept', ' application\/json');
httpRequest.setRequestHeader('ZSESSIONID', apikey);
httpRequest.onreadystatechange = function() {
...
};
return httpRequest;
}
...
usReq = initXHR ('POST', baseURL+'hierarchicalrequirement/create', apikey, function(){...});
任何人有任何想法/建议?太感谢了!
解决方案
当 API 密钥同时配置了只读和完全访问权限时,我看到了这个错误。我会首先确保您的密钥只有完全访问权限。
推荐阅读
- amazon-web-services - 在 CodeDeploy 重新部署后,Autoscaling Group 不遵守 ELB 运行状况检查
- quasar-framework - Quasar Quploader 使用 upload-fcatory 上传失败
- typescript - 如何基于 while 循环创建可观察对象?
- python - 在 sns.heatmap(...) 中使用 square=True 时增加图形大小
- python - 用一行代码绘制重新采样的时间序列面积图?
- javascript - Sequelize 自定义验证 - 无法访问实体中的所有字段
- python - Matplotlib 中补丁的平滑颜色变化动画
- typescript - 在 Typescript 中使用数组初始化 Map:new Map([[k1, v1], [k2, v2]])
- java - 移除模拟器上的 Google Play 服务
- ruby-on-rails - Ruby 中的 JSON 反序列化