基于AccessToken方式实现API设计

1、举例说明:redis

需求:数据库

  A、B机构须要调用X服务器的接口,那么X服务器就须要提供开放的外网访问接口。安全

分析:服务器

  一、开放平台提供者X,为每个合做机构提供对应的appid、app_secret。app

  二、appid是惟一的(不能改变),表示对应的第三方合做机构,用来区分不一样机构的。加密

  三、app_secret在传输中实现加密功能(秘钥),该秘钥能够发生改变的。spa

  四、为何app_secret是能够改变的?调用接口须要appid+app_secret生成对应的access_token(临时性),若是appid和app_secret被泄密,产生安全性问题,若是一但发现被泄密,能够从新生成一个app_secret。token

原理:为每一个合做机构建立对应的appid、app_secret,生成对应的access_token(有效期2小时),在调用外网开放接口的时候,必须传递有效的access_token。接口

2、开发步骤事务

一、使用appid+app_secret生成对应的access_token

 1.获取生成的AppId和appSecret,并验证是否可用
2.删除以前的accessToken
2.AppId和appSecret保证生成对应惟一的accessToken
注意:以上第二步必须保证在同一事务中
3.返回最新的accessToken

二、使用accessToken调用第三方接口

1.获取对应的accessToken
2.使用AccessToken查询redis对应的value(appId)
3.若是没有获取到对应的appid,直接返回错误提示

4.若是能获取到对应的appid,使用appid查询对应的APP信息
5.使用appId查询数据库app信息,获取is_flag状态,若是为1,则不能调用接口,不然正常执行
6.直接调用接口业务
相关文章
相关标签/搜索