现在有需求就是吧我们自己的一些接口提供SDK出去,类似弄个开放平台给其他厂商调用,但是这个认证不知道怎么做。
就是跟飞书开发平台一样自己申请一个appID和appSecret就可以换取token调用飞书的提供的接口,
想知道其中这个认证是否是oauth中的client认证模式,还是有其他的标准认证方式。
具体怎么操作思路是怎样的
CSDN上有一篇关于这种开放平台的SDK设计的文章,可以供你参考,看是否对你有启发:https://blog.csdn.net/qq_41970025/article/details/120023254
参考这个
https://blog.csdn.net/qq_41970025/article/details/120023254
这种其实很简单的,主要在于签名的设计,你只要把签名的规则设计好,SDK,差不多就可以弄了呀,签名一般就是利用appID和appSecret,和传递的其他的参数,排序然后采用MD5加密或者其他加密二得到的,也可以参考如下文章如做:
通常情况下,app_key和app_secret用在通信的首次认证当中,认证完成平台会返回一个token(通常拥有失效时间),后续的交互通过该token即可。另外这里补充的是app_key用来标记调用接口的方享受哪些权限,而app_secret用来表示你真的拥有这个权限。其实这里app_key与app_id功能相似
所以说,可以分为以下几个常见的场景:
1、只会提供app_key和app_secret,在客户端根据一定的算法生成认证的token,调用接口时带上该token就可以了。像七牛云的接口调用就使用的这种模式。
2、调用接口时同时携带app_key和app_secret传递到服务器,服务器返回对应的token,后续业务接口的调用通过token进行校验。
3、每次请求的参数都进行签名(MD5或SHA1等)处理,而app_secret不会通过网络传输,只会存储于商户端和服务器端。
校验的方式通常是讲核心字段按照key的升序进行排列,组成key=value&key=value的形式,最后再加上app_secret的字符串,然后使用签名算法,计算出一个sign值。请求时,将除app_secret以外的原业务报文和sign值传递给服务,服务器接收到之后,按照同样的方式进行延签。签名一致则说明报文在传输过程中未被篡改。像腾讯云就使用此种模式。
所以还是建议使用授权码模式(Authorization Code)比较适合做SDK认证授权获取token的