【问题标题】:Regenerate ( refresh ) Token on Browser在浏览器上重新生成(刷新)令牌
【发布时间】:2018-02-14 16:42:40
【问题描述】:

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

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

【问题讨论】:

    标签: firebase push-notification token web-push


    【解决方案1】:

    您不能在不撤销权限的情况下重新生成令牌。

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

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

    【讨论】:

    • 是的,我在 B 计划中考虑到了这一点。你确定在不撤销权限的情况下无法重新生成 Token,我在 android 团队的同事说这在 android 上很容易实现。
    • @zhilevan 不,你不能。令牌由浏览器管理,而不是由网站管理。您需要撤销权限。
    猜你喜欢
    • 2020-04-14
    • 2019-03-24
    • 1970-01-01
    • 2021-08-23
    • 2021-06-28
    • 2014-05-31
    • 2021-05-15
    • 2019-10-01
    • 2020-08-11
    相关资源
    最近更新 更多