miao-plugin
miao-plugin copied to clipboard
fix. 修复uid与qq号对应关系不刷新的问题
此前遇到了一个bug:当uid被其他人抢先绑定之后,即使对方取消绑定,无论如何操作,排行榜等处显示的头像仍然会显示对方的头像。
经过分析,该bug问题在于redis数据库miao:rank:uid-info:{uid}
内存储的qq号不刷新,而更新该处数据库的方法为setUidInfo
。该方法只在两处被调用,其一:
并不会实际更新数据库,其二来自本pr修改的render
函数,其首先定义了isSelfUid
:
然后传入setUidInfo
:
内部更新qq号逻辑如下:
因此,qq号当前仅当当前uid在getCkUidList
返回的uid列表中时会被更新。虽然getCkUidList
函数名已经暗示了其用途,但鉴于是第一次接触本项目代码,确认了一下其逻辑:
因此显然,getCkUidList
只会返回绑定了cookie的uid。
综上,bug的原因在于,只要没有绑定过cookie,只要被人绑定过的uid,其uid-qq对应关系就不再会发生改变,故做出此修改及pr。
此外,本修改不会影响系统健壮性与安全性,毕竟初始的uid-qq对应关系本就是无权鉴的,且本修改涉及的变量均只影响setUidInfo
函数的uidType
参数,该参数只涉及对应qq号的更新逻辑。