android webservice接口鉴权方案

一般的构造方法这里以eoe网络接口很久前的相关约定为例:

接口根地址:
    API_ROOT = http://ws.eoeandroid.com/api/v1

公共测试key:
    api_key: 3YXNgING8f5Ugiq9J27XjQ
    api_secret: GNBu298hQemoO4INRkAyS5YDtKaq8ds4KTAue45iyE

公共参数:

参数名 取值 含义 备注
uniquely_code 字符串 该用户手机的设备号 必需,可取设备唯一码
api_key 字符串 分配的api_key 必需
nonce 字符串 唯一码 必需
timestamp 数字 时间戳,标识访问时间 必需
api_sig 签名值 按照规则计算出来的签名 必需
alt 字符串,目前支持xml 需要返回结果的数据格式 可选,默认值: xml
page 数字 获取结果集的第几页结果 可选,默认值: 1
limit 数字 结果集每页返回几条结果 可选,默认值: 20
locale 字符串,格式为zh-rCN 当前用户的locale代码 可选,默认值:unknown-rUnknown

PS:

每个接口除了其各自业务逻辑需要的参数外,还需要包含如下公共参数。

鉴权规则:

计算签名值:
api_sig =MD5(" api_key"+@api_key+"+" nonce"+@nonce+" timestamp"+@timestamp+" uniquely_code"+@uniquely_code+ api_secret)

发送请求:
如上参数列表中的必需的参数,加上计算出来的api_sig通过GET方式发送。


当然还有其它的一些方式,比如将入参首字母排序然后加上“secret key”做hash等等,不过总体来说一般的鉴权方式都大同小异。如果公司接口采用了上面所说方法,而且安全级别要求又特别高的话,建议用NDK实现。

你可能感兴趣的:(移动开发)