开源版20.8,postman调用内置接口获取值失败
开源版20.8,postman调用内置接口,使用接口api获取到的sessionid,后续项目列表获取失败,但是使用已部署页面中cookie的值时,却可以正常获取。网站中的sessionid和json接口获取的有什么区别吗,如何修改
具体步骤如下:
获取sessionid:
登陆:
调用项目列表内置接口:
直接使用api-getsessionid.json的sessionid,获取项目列表错误,提示修改密码(已知当前登陆用户密码为强密码,接口错误均会返回302重定向到修改密码)
但是当调用浏览器里的zantaosid时,
仅需将zantaosid修改成浏览器中的sid,就可以正常获得项目列表值
1、确认下postman和页面上操作的是同一个用户吗?
2、postman中是有cookie缓存的,可以清一下postman的缓存,然后在重新获取sessionid验证登录试一下
3、在禅道页面后台-系统设置-安全里,看下用户设置的密码是否满足安全验证规则?
1.postman与页面操作为同一个用户
2.已尝试清空postman的cookie缓存,依然还是以上的现象
3.密码确认符合安全认证,密码安全为强密码,“修改弱口令密码”也确认为“不强制修改密码”
方便添加QQ1455720938 我们跟踪看下吗
使用api.php/v1/tokens获取的token值代替api-getsessionid.json的session以后,禅道所部署的235服务器可以正常获取数据了,但是在第三方的项目localhost本地调取同一项目接口时,获取的项目列表projectStats确是空数组,(两者为同一个登陆用户,cookie缓存清空重新获取过,依然为上述的现象),这种一般是什么原因
本地:
235:
是不是部署了两套禅道?一套是235服务器上可以正常调用接口了?
另一套部署在第三方应用的服务器上,然后应用通过localhost调用接口吗?
确认下两套禅道的数据一致么?
可以登录下第三方应用服务器上安装的禅道,获取的数据是否存在
只配置了一套禅道系统,调用235服务器可以正常返回对应的数据,localhost为本地vue项目启动时的地址,主要通过配置跨域访问235服务器,另外localhost访问组织成员,迭代中的任务列表等可正常返回,但是在产品/项目/执行列表时projectStats返回空数组,以及任务详情时返回“无权访问该迭代!”
应用项目通过跨域方式调用禅道接口,url中也不应该使用localhost呢。localhost代表方式本机地址
通过实际IP可以调用到服务器接口是正常的,使用IP进行调用就可以的。
应该不是因为这个,这个项目在18版本那会儿就可以运行了,现在升级到20.8之后才报错,在项目启动后,项目的接口调用前缀localhost地址是默认必有的,然后跨域配置将所有以/api 开头的请求代理访问到 http://10.127.0.235:8090,并且在请求中去掉 /api的前缀,比如http://localhost:8080/api/zentao/my-team.json?zentaosid=xxxxx是可以正常返回禅道系统数据,只有个别的项目/执行列表中返回200但是项目列表为空数组
咱们看下QQ私聊窗口,我们跟踪看下呢