需要登录验证的api调用

2014-09-01 18:39:23
王春生
26305
最后编辑:石洋洋 于 2018-05-02 11:30:31
简介:在使用api机制进行集成的时候,有的应用场景会涉及到会话登录。这种情况下面会话调用需要经过下面的三个步骤:

在使用api机制进行集成的时候,有的应用场景会涉及到会话登录。这种情况下面会话调用需要经过下面的三个步骤:

一、获得session。

首先要访问api模块的getSessionID方法,获得session。
GET方式:?m=api&f=getSessionID&t=json
PATHINFO: api-getsessionid.json

返回的格式中包含sessionName和sessionID。


在后续的访问中,必须以cookie的方式,或者GET方式,将session传递给服务器。

简单的方式就是在请求的url地址后面追加$sessionName=$sessionID。比如http://pms.zentao.net/index.json?zentaosid=xxxxxxx

注意:上面地址中的sid参数名称可以在config文件里面通过 $config->sessionVar 设置,比如禅道config/config.php文件中 $config->sessionVar = 'zentaosid'。老版本禅道默认是 sid,新版本禅道默认是 zentaosid,可以具体查看一下使用禅道的代码中是如何定义的。

二、验证用户身份。

然后可以访问user模块的login方法,来进行用户身份的验证。
用户身份验证,需要提供用户名和密码,以post方式传递给user-login方法。
变量名为: account, password。

三、调用相应的API。

用户验证通过之后,就可以通过页面调用的api,或者超级model调用的api来获取相应的数据了。

备注:

目前该功能还只有在禅道项目管理软件中实现,蝉知门户和然之协同暂时还没有实现。

评论列表
lzh 2019-08-09 20:32:15
我这边认证成功:user-login.json?account=admin&password=123456&zentaosid=xxxxxxx
这个认证成功了,返回了用户信息,但是调用这个api bug.json?zentaosid=xxxx 时总是提示:self.location='/zentao/user-login-L3plbnRhby9idWctYnJvd3NlLmpzb24=.json'。
这是怎么处理和理解?
lzh 2019-08-09 20:54:57
访问 bug.json 返回需要登录验证;
访问 bug-browse.json 就能够返回bug列表数据。
前者是在开源版-》后台-》二次开发-》bug查看到的api;
后者是在页面访问bug.json跳转返回的请求api;
这两者有什么区别呢?
xiaobin 2019-07-29 15:33:40
debug路径common=》model=》checkPriv()
xiaobin 2019-07-29 15:32:44
用户密码已经修改成复杂(界面登陆显示“高")
xiaobin 2019-07-29 15:31:08
为什么写一个前后端分离的程序,前端调用API,debug到里面的USER,modifyPassword一直是True,modifyPasswordReason=weak,这会导致API调用一直返回:
"<html><meta charset='utf-8'/><style>body{background:white}</style><script>self.location='/pms/www/my-changepassword.json';

</script>
"
王春生 2019-07-30 11:56:18
第一次登陆修改密码可以关掉。后台安全里面。
lzh 2019-08-09 20:30:50
user-login.json?account=admin&password=123456&zentaosid=xxxxxxx
这个认证成功了,返回了用户信息,但是调用这个api bug.json?zentaosid=xxxx 时总是提示:self.location='/zentao/user-login-L3plbnRhby9idWctYnJvd3NlLmpzb24=.json'
我也遇到这个问题,怎么处理的麻烦回复一下 2019-08-06 11:27:30
user":{"birthday":"0000-00-00","whatsapp":"","lastTime":"1565059982","role":"","gender":"f","modifyPassword":true,"scoreLevel":"0","clientStatus":"offline"

</script><html><meta charset='utf-8'/><style>body{background:white}</style><script>self.location='/zentao/my-changepassword.json';
Leo 2019-07-28 18:40:30
写错了不是token,是cookie
Leo 2019-07-28 13:34:58
调用API失败的,sessionID可以作为token放在header里面传,params作为data传,路径用path_info的方式直接去json.
doubledan 2019-07-15 10:51:18
我们想实现用公司内部办公平台的账号登录禅道, 如何打通?
王春生 2019-07-16 09:12:47
参考:https://www.zentao.net/book/zentaopmshelp/344.html
2019-07-09 23:55:52
我想在公司的办公app上集成禅道,请问客户端代码开源吗?
王春生 2019-07-10 09:36:36
禅道的客户端是封装的html5的页面。你用手机访问下禅道,知道入口就行了。
andyzhou 2019-07-09 19:51:25
请问加哪个群?可以讨论用python二次开发 登录用户
王春生 2019-07-10 09:37:16
161764178 这个群。
liuyoyi 2019-07-08 11:04:45
11.5.1 调用登录接口返回提示\请\用\手\机\浏\览\器\访\问,这是什么原因
王春生 2019-07-09 18:02:31
禅道应该没有这样的提示。跟一下代码看看吧。
1/4
发表评论
评论通过审核后显示。