已解决 关于禅道的api调用问题

https://www.zentao.net/index.php?m=ask&f=view&questionID=36501

继续提问

path_info方式

请问第2步与第3步的联系是什么?

我用了post方式通过验证后,再调用api后,得到的返回结果是一串html,如下,请问如何使用

b"<html><meta charset='utf-8'/><style>body{background:white}</style><script>self.location='/zentao/user-login-L3plbnRhby9idWctYnJvd3NlLmpzb24=.json';\n\n</script>\n"

禅道版本 11.6.4 源码包
操作系统
客户端浏览器

提问者: 全网云杭州研发中心 悬赏:5 日期: 2019-11-21 16:44:49 答案:1 点击:1944

获取技术支持

QQ: 电话:
设置备注
答案列表
2019/11/21
  1. 获取sessionid

  2. 校验sessionid与用户名、密码

  3. 使用用户sessionid访问api

这种提示,应该是第二步校验出现问题。
2019/11/22
第二步校验的结果为
{
'status': 'success',
'data': '{"title":"\\u7528\\u6237\\u767b\\u5f55","noGDLib":"\\u8bf7\\u7528\\u624b\\u673a\\u6d4f\\u89c8\\u5668\\u8bbf\\u95ee\\uff1a<strong>http:\\/\\/192.168.1.43:8086\\/zentao\\/<\\/strong>","referer":"\\/zentao\\/","s":"db148612533c5aad6a5dec34e2b56b29","keepLogin":"off","rand":1845852329,"pager":null}',
'md5': 'c2065eda82ef0aad599128632b71d05c'
}
这应该是表示校验通过了吧,但是没有从他的data里面看到有sessionid返回
2019/11/22
提示中有noGDLib,没有成功,建议跟下user模块control.php中的login方法。
2019/11/22
我是用python调用登录接口/zentao/user-login.json,代码段如下
def login(self):
"""
用户登录api
:return:
"""
url = self.host + "/zentao/user-login.json?zentaosid=" + self.get_sessions()
# url = self.host + "/zentao/www/index.php?m=user&f=login&t=json&zentaosid=" + self.get_sessions()
data = {"account": self.account, "password": self.password}
req = self.s.post(url, data=data)
至于这个user模块control.php中的login方法,到哪里去参考,多谢大神,已经花了挺久的时间了,卡在这里了
2019/11/22
是禅道的代码,zentao/module/user/control.php中的login方法。