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.直接调用接口业务