在日常开发中难免会遇到对接三方平台,比如文件的云存储、短信通道、认证等,在调用这些三方接口时往往需要进行先认证,认证完成之后才能够进行正常的业务处理。
appid
appid通常情况下指的是一个用户的账号,表示一个企业或个人的账号。
该账号通常跟开通的商户实体所一一对应。通过该参数平台能找到你是谁。在接口调用的过程中很少直接使用appid,一般会配合秘钥使用。
有了统一的appid,此时如果针对同一个业务要划分不同的权限,比如同一功能,某些场景需要只读权限,某些场景需要读写权限。这样提供一个appid和对应的秘钥就没办法满足需求。此时就需要引入针对权限进行账号分配,通常使用appkey和appsecret。
以OSS存储为例,在后台管理界面对存储的文件拥有删除的权限,而对于用户端可能只需要读或写的权限就行。那么此时,就可以生成两对appkey和appsecret。一个用于删除,一个用于读写,达到权限的细粒度划分。
appkey
公匙(相当于账号),简称API接口验证序号,是用于验证API接入合法性的。接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站的用户名。
appsecret
简称API接口密钥,是跟appkey配套使用的,可以简单理解成是密码。主要用于对请求参数签名,和对回调参数验证。不能被别人知道。
校验的方式通常是讲核心字段按照key的升序进行排列,组成key=value&key=value的形式,最后再加上appsecret的字符串,然后使用签名算法,计算出一个sign值。请求时,除appsecret以外的原业务报文和sign值传递给服务,服务器接收到之后,按照同样的方式进行验签。签名一致则说明报文在传输过程中未被篡改。