QQ登录 账号密码登陆 官网首页

签名方式

0. TPshop1.2.8版本起,登录后的所有操作加了token参数验证,并且可以在BaseController设置token超时时间

1.TPshop APP 所有接口必须统一签名,签名不通过所有接口不能调用。(除 获取服务器时间, 缩略图 等不关紧要接口...)

2.APP端签名写在所有接口请求统一口, 写一遍供所有接口调用。

3.签名秘钥必须保证不被泄露


所有api 接口必须通过签名验证,  签名验证不通过, 所有事情都不能做, 首先跟服务器端程序员双方协定一个秘钥, 这个秘钥两边一致

签名方式看如下例子:


例如调用用户登录接口需要签名才能用

http://www.tpshop.com/index.php?m=Api&c=User&a=login

 参数列表

参数

是否必须

说明

username

必须

用户名

password

必须

密码

unique_id必选手机端唯一标识 类似web pc端sessionid
time
必须
当前时间戳
sign
必须
签名秘钥
/**
看这个登录接口有三个参数, username,password,unique_id  假设有个用户登录,   用户名: zhangsan  密码:123456  unique_id:abc 
那么先讲三个参数名进行升序排序, 排序后结果[0] => password [1] => unique_id [2] => username
然后对这三个参数的值进去加密 得到一个签名,加密方式 md5(参数值1+参数值2+参数值N… +时间戳+秘钥) 
假设你们双方协定的秘钥为 soubao 那么签名方式为
sing = md5('123456'+'abc'+'zhangsan'+'当前时间戳'+'soubao');   //其实就是md5(密码+unique_id+用户名+'当前时间戳'+秘钥)
md5 里面的先后顺序根据键名排序来得到这个签名后, 本身这个登录接口只需传递 username,password,unique_id 三个参数的, 
这个时候需要多传递两个参数把 sing 和 time 时间戳也传给服务器,  而时间错需要通过服务器时间戳接口获取, 详细参见获取服务器时间戳 api 接口
*/


如果看了不懂 请看 《TPshop 万能签名原理机制视频教程》详细讲解

视频地址 http://www.99soubao.com/tpshop_video/video.html