致远OA二次开发 开启RESTFul并获取Token

按照一般的二开,如微信、钉钉等程序的开发,一般都是需要先注册账号,获取Token,然后通过Token来调用对应系统内置的外部方法来实现对系统数据的获取、增删改查。致远OA由于我是从A8版本开始接触的。之前的版本RESTFul web service功能需要通过后台开启。A8之后只需要通过系统管理员(system)账号新建,即可开启。

RESTFul web service

首先登陆system账户。如忘记密码可以通过服务器后台进行重置。点击信息集成配置栏目,点击REST用户管理

而后填写对应的账户名与密码。校验IP根据安全需求进行设置。设置完毕后,此事系统的RESTFul web service功能自动会开启。

此时访问网址

http://ip:port/seeyon/rest/application.wadl

即可查看RESTFull web service服务的WADL。

验证RESTFul

使用创建的REST用户访问RESTFul web service时首先要进行身份验证获取token,所有服务都必须提供合法的令牌ID方可调用。

为保证安全,验证服务必须使用POST方式,用户名和密码使用请求Body以JSON格式发送。

http请求方式:POST
http://ip:port/seeyon/rest/token
原始的HTTP请求如下所示
POST http://127.0.0.1/seeyon/rest/token HTTP/1.1
Host: 127.0.0.1
Accept: application/json
Content-Type: application/json
{"userName":"rest","password":"123456"}
请求实例:
http://IP:port/seeyon/rest/token/{restusername}/{password}

其中userName参数为REST用户登录名,password为REST用户密码。均为必需参数。返回参数为ID,成功返回Token JSON字符串,失败返回-1。

传递Token

除了验证服务,所有的REST调用时必须传递Token,如果不传递Token或传递错误的Token,将返回HttpStatus.SC_UNAUTHORIZED401错误及错误信息。

Token的生命周期为15分钟,如果15分钟无调用,Token将失效,失效以后调用返回401,提示“Invalid token,please authenticate again”。

Token的传递方式有两种:

在HTTP请求的header中,使用token属性

GET http://127.0.0.1/seeyon/rest/xxx HTTP/1.1
Host: 127.0.0.1
Accept: application/json
Content-Type: application/json;charset=UTF-8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Cookie: JSESSIONID=5079B8DC8A4BD52E48FBA4DE78C2A43C
token:xxxxxxx

在请求参数中传递,如

http://127.0.0.1/seeyon/rest/orgMember/123?token=xxxxxxx

如果使用的是之前的SDK,上面的全部都可以无视,直接调用client.authenticate(userName, password);即可获取token。

具体可以参考我之前的说明致远OA系统二次开发基础入门及资料汇总

点赞

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注