我在开发中遇到了这样一个问题。
首先说说我的登录流程(我是参考这个很流行的教程https://segmentfault.com/a/1190000014234141设计的,后文概括了我的流程,和这个教程是一样的)。每次打开小程序,我会调用wx.getStorageSync查看是否本地保存了我的服务器维护的session key,如果没有就调用wx.login,如果有,就使用wx.checkSession判断session key是否过期,如果过期了,就调用wx.login,如果没有过期就使用本地保存的session key请求我的服务器其他API。下图是我的登录流程:
问题在于,设想这样一种情况,我有两台手机,第一台登录后调用wx.login生成一个session key,第二台手机再登录我的小程序,调用wx.login再次生成一个不同的session key。此时两台手机都在本地保存了一个互不相同的session key,并且一定时间内wx.checkSession会返回未过期。于是在这段时间内第一台手机将使用一个作废的session key来请求我的API。
请问大家是如何看待这个问题的?是否有解决的办法或建议呢?