目标
本文档主要讲述
- app移动端携带AppToken调用业务接口的过程。
参与角色
- app移动端;
- 服务端的登录接口或业务接口;
|
通信协议:
http协议,https协议。
APP调用业务接口
业务接口的权限分为两类
- 可匿名调用的接口
- 需要登录后才可调用的接口
调用“可匿名调用的接口”时
可以不携带AppToken就能调用。但由于没有AppToken,也就无法为AppToken续命。
建议:在app端不管是什么类型的接口,在调用时都携带AppToken,有则带,没有则
调用“需要登录后才可调用的接口”时
必须携带AppToken才能调用成功,否则服务端返回未登录提示:
{"status":"401","message":"没有登录","data":"","page":{}}
如何携带AppToken
app发起调用时需要携带AppToken, 可以在请求头中携带,也可以在参数中携带。服务端会先从请求头获取,若未取到再从请求参数中获取。
建议在请求头中携带AppToken。
演示
“ 判断商品是否收藏 ”接口,是一个需要登录后才可调用的接口,用途是判断当前登录用户是否收藏了某pid的商品。
演示1:调用接口但未携带AppToken
接口地址:http://127.0.0.1:8081/wap/api/v1/user/collectionProduct/isCollection.htm?pid=4568
服务端返回:{"status":"401","message":"没有登录","data":"","page":{}}
演示2:调用接口但 携带 AppToken
接口地址:http://127.0.0.1:8081/wap/api/v1/user/collectionProduct/isCollection.htm?pid=4568& AppToken=22bcf04ccbbc48b88cf2acb0d879846d
服务端返回:{"status":"200","message":"商品没有收藏","data":"","page":{}}
原理
请看文档: AppToken登录认证设计
接口测试截图
修正:下图中的apptoken应为ApptToken
统一数据包装体和状态码
请看说明文档: 统一数据包装体和状态码
安全注意事项
AppToken在app端需要被保护不要丢失,坏人获取到 AppToken后就可以你的身份调用服务端接口了(sessionid也是这样的)。
只在调用我方服务端接口时携带 AppToken,在调用第三方接口时不要携带 AppToken。