目标

本文档主要讲述

  1. app移动端携带AppToken调用业务接口的过程。

参与角色

  1. app移动端;
  2. 服务端的登录接口或业务接口;

通信协议:

http协议,https协议。

APP调用业务接口

业务接口的权限分为两类

  1. 可匿名调用的接口
  2. 需要登录后才可调用的接口

调用“可匿名调用的接口”时

可以不携带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。