我正在开发具有表单的应用程序,但是我需要该表单可以长时间使用,因为该应用程序可以在固定在墙上的静态平板电脑上工作。我使用的是隐藏标签,因此过期时必须手动刷新页面。我正在使用套接字,所以我认为,不用取消令牌的到期时间,我可以在到期时间到来时通过套接字发送新令牌。发送新令牌的问题是如何以及是否应该这样做...
我想到了一种解决方案,每30分钟向客户端发送一次新令牌:
它首先在渲染时发送2个令牌(而不仅仅是隐藏标签)。 其中之一(不是wtform令牌的那个)使用jwt,并且是对datetime进行加密的结果,datetime是实际的隐藏标签被更新的日期时间(在渲染中将根据请求创建,因此它是渲染的时间) )。第二个令牌是隐藏标签本身的令牌。
每隔30分钟,客户端会将带有jwt令牌的请求发送到套接字处理程序,该处理程序将检查令牌中的日期时间至少经过30分钟,然后发出2个令牌(wtforms的新令牌)以及更新的加密日期时间以供客户端在下一次发出时使用),这样我可以防止某些客户端编辑前端以发送成千上万个新令牌请求,这可能是有问题的(也许不是问题)。
我认为粘贴代码不会有太大帮助,因为我有一个理论上的问题,即代码本身比逻辑本身更多。
我的预期结果是拥有一个有效的前端表单,该表单使用令牌来防止csrf而不停用令牌的到期时间。
我的问题是:
真的有必要使用该jwt加密令牌,而不是仅向每个请求一个令牌的客户端提供一个新令牌吗?
有比我想的更好的解决方案吗?