已关闭,此问题为opinion-based。它目前不接受回答。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。
8小时前关闭
Improve this question
我目前正在开发一个移动的应用程序,前端使用Flutter,后端使用NodeJS。事情进展得很顺利,但我被困在如何实现一种彩票功能上。
我基本上希望服务器随机选择一个用户。一旦这样做,用户将在他的下一个帖子请求中收到一个令牌,该令牌将提醒他他已被选中。从这一点上,用户对服务器的任何发布请求都将带有他的令牌,并给予他特殊的好处。
我的问题是最后一部分。如何在服务器端轻松检查收到的令牌是否是最新的令牌?因为其他用户可能使用来自较早彩票的较旧令牌进行请求。
我想我应该使用JWT身份验证,但不是每个令牌都同时过期,我不知道如何检查收到的JWT是否是最新的。
我宁愿不存储在不同的数据库中的赢家,因为这将意味着太多的操作,它会太慢。
1条答案
按热度按时间smtd7mpg1#
简短的回答是你不能。从逻辑上讲,客户端状态不可能依赖于其他客户端。
您可以使用服务器状态,也就是说,将当前选择的用户的状态保存在常规DB中(当然,您可以缓存以实现更快的访问)。
或者您可以使用客户端状态,其中客户端有义务将状态保存在例如JWT中。(JWT是签名的,所以客户端不能改变状态。)**但是客户端状态不能受到其他客户端状态的影响。**所以无论如何,你都需要一个服务器状态,要么跟踪哪个客户端是被选中的,要么是旧的赢家令牌的黑名单,或者任何其他你喜欢的设计,但它最终必须存储在后端。(除非你使用区块链。;-))