管理后端文档
REST API 文档可见Redoc.
在搭建好开发环境后,也可以在 http://localhost:8000/api/v1/docs 访问到带有调试界面的管理后端文档。
密钥生成
房间密码
房间密码生成采用完全随机的 32 Byte,经过哈希后替换人眼难以辨认的字符得到;这是为了方便登录客户端时输入密码。
微信接入 token
微信接入 token 的生成基于确定性的算法,从房间号码派生得到。对房间号加盐后哈希,再替换人眼难辨认的字符,即可生成微信接入 token.
可参考代码中的实现。
后台任务
后台任务都定义在 worker.py 中。
刷新微信公众号的 Access Token
任务名称为 refresh_wechat_access_token_all, refresh_wechat_access_token_room.
根据微信接口要求,管理后端会定期刷新所有房间对应公众号的 Access Token;目前的两次刷新之间时间间隔为 max(ex / 2, ex - 1e3),其中 ex 为单个 Access Token 的有效期。
与控制器的同步
任务名称为 resume_controller.
在创建或修改房间时,均会通过控制器的 REST API 进行同步。 当所有服务重启时,管理后端会把数据库中房间状态向控制器进行一次同步,此后这些信息缓存在控制器的内存中。