> 文章列表 > JAVA开发(第三方接口授权访问)

JAVA开发(第三方接口授权访问)

JAVA开发(第三方接口授权访问)

接上一篇异业合作,如果一个第三方系统(我们定义为B系统)需要直接调用本系统(我们定义为A系统),那么系统间必须授权才能访问已保证系统的数据安全。

首先我们定义接口的请求示例,已http协议为例:

http://接口URL?token =xx &jsonData=xxxxx&sign=xxxx

我们可以看到需要访问A系统,我们需要携带token,调用A系统的参数而且这些参数是经过加密的,还有签名。

数据传输标准:

调用方式(url)
POST,视具体接口定义
请求类型(ContentType)
application/json
响应类型(ContentType)
application/json

 首先B系统在请求A系统的数据接口之前先调用A系统的获取token接口。

/oauth2/accessToken

token需要的参数:

参数

参数选项

意义

grant_type

必须

该值固定为access_token

client_id

必须

即对接账号(A系统和B系统约定的账号id)

timestamp

必须

当前调用时间,格式为yyyy-MM-dd HH:mm:ss

示例: “2018-01-01 01:01:01”

时差不能相差半小时以上

username

必须

用户名(A系统和B系统约定的账号)

password

必须

用户密码(双方预定),必须是md5加密后的字符串,不要使用原文!大写

scope

必须

申请权限。(传0,为以后扩展用)

sign

必须

签名,生成规则如下:

按照以下顺序将字符串拼接起来

client_secret+timestamp+client_id+username+password+grant_type+scope+client_secret
username使用原文;

client_secret(双方约定 需要md5加密后的转大写)、password(需要md5加密后的转大写);

将上述拼接的字符串使用MD5加密,加密后的值再转为大写

返回的token数据字段:

返回的token数据格式样例:

{"result": true,"msg": "success","uid": "57","access_token": "8BAC35711832492780DA535259949CA8","refresh_token": "FF69836D701C49E88EB1823AB545CEFB","time": 1564385329500,"expires_in": 86400,"refresh_token_expires": 1567063729500
}