百度小程序Session Key使用最佳实践

在开发百度智能小程序的时候经常会用到Session Key(session_key),Session Key是用户的会话密钥,在官方文档上提供了具体的介绍和使用方法,详细的信息可以查看官网用户数据的签名验证和加解密和Session Key,从文档可以看出Session Key是会过期的(如图1),如果处理不当可能无法解密数据,这里我总结了下几条建议。

要保证解密成功,Session Key过期后及时更新是关键。来看看官方文档提供的解决方案,流程图如下:

默认图片

流程图中有一个关键点,请求用户信息前先调用 checksession 检查Session Key是否有效,有效就直接用走后面的流程,无效就重新走login流程获取code换取Session Key。

 

官网介绍的方法比较保守,官方文档里面有介绍Session Key本身存活时间是和用户的活跃度有关系的,越活跃的用户Session Key有效期越长,也就是Session Key并没有那么容易过期,用官方的方法会增加整个过程的耗时,这里我介绍下我们在业务中用到的其他两种方案

1、既然Session Key过期要通过login方法再次获取有效Session Key,那么干脆每次请求用户信息前都去走一次重新获取Session Key 的流程,重新拿Session Key。

2、 在业务中自定义一个解密失败的错误码,因为服务能是能感知到解密失败的,在解密失败的时候就将这个错误码传给前端,前端接收到失败的情况就发起获取Session Key 的流程,重新获取后再进行一次解密操作,这样会大大降低这个过程的耗时(流程如下图)。

默认图片

我将上面三种方案各种情况下请求次数列了个表格供大家参考:

默认图片

综合来看“解密失败时 重新获取Session Key”这种方案从耗时来看是最优的,当然各自业务场景也不一样,大家可以根据自己的情况选择合适的方案,以上就是我的一些经验,希望对大家有所帮助。

未经允许不得转载:一起SEO学习网 > 百度小程序Session Key使用最佳实践

评论