Skip to content
sofn edited this page Oct 24, 2015 · 2 revisions

Header说明

  • X-Engine-UID 内网模拟用户调用接口
  • X-Engine-From 区分内外网,如不设置默认内网,可选值:INNER、OUTER
  • X-Engine-APPID 客户端ID,App服务器端可能支持多个客户端,每个客户端应有唯一标示
  • X-Engine-RemoteIP 真实IP,防止请求通过Nginx后获取不到真实客户端IP

认证方式

  1. 客户端Mauth认证 Header: Authorization:MAuth 1234567899abcdef
    其中Mauth后的值是每次登陆后下发给客户端的,生成方法

  2. Basic认证 Header: Authorization:MAuth username:password http标准用户名、密码认证。生成方法

  3. Cookie认证 上传Cookie: AUTH_COOKIE:1234567899abcdef 专为嵌套在客户端中的H5页面设计,值生成方法
    客户端调到H5页面可通过服务器端接口转发: http://localhost:8080/proxy?url=http://hosts/the/real/path

  4. 内网Header认证 以上认证方式都是提供给外网使用的,开放人员想在内网模拟用户调接口(开发人员可不知道用户的密码)可通过此种方式
    Header: X-Engine-UID:123456

接口限制

  1. 接口频次限制 在接口方法上添加注解: @RateLimit ,如果不加此注解则接口调用无限制 示例代码:
   @RateLimit({
               @RateLimitTypeConfig(value = RateLimitType.IP, rates = {@RateLimitRateConfig(100)}),
               @RateLimitTypeConfig(value = RateLimitType.USER, rates = {
                       @RateLimitRateConfig(value = 100, time = TimeUnit.MINUTES),
                       @RateLimitRateConfig(value = 10000, time = TimeUnit.HOURS)})
       })

具体示例参见代码: 值生成方法

  1. 接口开放控制、认证控制 服务器端接口不是所有的都提供给外网调用,可不是所有的都需要通过认证才能调用,所以需要精确的控制
    在接口方法上添加注解: @BaseInfo(status = ApiStatus.PUBLIC, needAuth = AuthType.OPTION)
    如果不添加此注解,默认级别是status=ApiStatus.PUBLIC,needAuth=AuthType.REQUIRED,即:对外提供、需要认证
  • status: 开放级别控制
  • needAuth: 认证控制
Clone this wiki locally