代码之家  ›  专栏  ›  技术社区  ›  Dave

如何通过admin SDK注销用户?(使auth==null)

  •  0
  • Dave  · 技术社区  · 7 年前

    撤销用户ID令牌时,应将信息传递给客户端,以便执行诸如重新验证或用户注销()之类的操作。

    我们可以打电话给客户 FirebaseAuth.DefaultInstance.SignOut .我们如何使用admin SDK实现同样的效果?

    有没有办法通过admin SDK注销用户? (使auth==null)。

    “黑客”可能会修改客户端代码,阻止应用程序注销或重新验证。我知道我可以用admin SDK和firebase规则检查令牌是否被撤销,但只有在auth为null时才更容易检查。或者我的想法是错误的,因为“黑客”只获得了一次ID令牌,即使在名为FirebaseAuth的客户端应用程序之后,也可以发送带有这些凭据的请求。默认实例。注销?

    0 回复  |  直到 7 年前
        1
  •  3
  •   Frank van Puffelen    7 年前

    有没有办法通过admin SDK注销用户?

    Admin SDK提供了一种撤销用户权限的方法 刷新 代币这不会立即注销用户,因为该用户具有不可撤销的 身份证件 有效期为一小时的代币。

    如果要立即使后端资源对已吊销令牌的客户端不可用,可以在吊销令牌时将其状态写入数据库,然后从安全规则中访问该状态。没有更简单的方法可以立即阻止它们。也看到 Five tips to secure your app ,它涵盖了此主题和安全主题。

    “黑客”可能会更改客户端代码,阻止应用程序注销或重新验证

    客户端的身份验证状态基于一个ID令牌,该令牌在创建后一小时内有效。客户端无法将令牌扩展到该范围之外。要获取新的ID令牌,它必须调用身份验证服务器,该服务器在其刷新令牌被撤销后将失败。

    在客户机上注销用户会使该客户机忘记该用户的令牌。ID令牌仍然有效,但没有人会知道。请记住:应用程序和服务器之间的所有流量都是通过(端到端加密的)HTTPS连接发送的。这意味着中间人攻击只有在有人能够解密此流量时才有可能,这要求他们有权访问证书。请参阅以获得更好的解释 Does https prevent man in the middle attacks by proxy server? .

    推荐文章