在浏览器上重新生成(刷新)令牌

Regenerate ( refresh ) Token on Browser

场景是,我们有一个网站,我们使用网络推送来发送一些网络通知,在用户登录该网站后,我们会检查是否 he/she 向我们授予了通知权限,我们不会询问它,如果不是我们要求启用通知,生成的令牌是每个浏览器我的意思是如果用户注销并且另一个用户登录到我们的网站以前的令牌可用于新登录的用户,所以如果我们想通知以前的用户, 新用户收到了我们的通知。

简单的解决方案是在注销时删除令牌,每次登录后我们应该要求用户再次向我们授予权限,但这让用户很困扰,我有一个想法,当用户登录该网站时,我们会检查以前的用户是她/他自己,我们什么都不做,但如果有另一个用户,无需再次请求授予权限(我们之前询问过他们)我们刷新令牌,我的意思是为 [重新生成另一个令牌=19=] 并将该令牌保存在我们的后端,我的问题是 我们如何重新生成令牌而不再次请求在浏览器中授予通知权限?

您不能在未撤销许可的情况下重新生成令牌。

但是您可以使用我们用于 Pushpad 的相同策略:

  • 您数据库中的每个令牌(即浏览器)仅存在一次
  • 每个令牌最多关联一个用户 ID
  • 当用户注销时,您从令牌中删除用户 ID
  • 当用户登录时,您将用户 ID 添加到当前令牌中
  • 当您需要发送针对特定用户 ID 的通知时