我在Azure移动服务中使用自定义身份验证,方法是在自定义登录API中生成JWT(JSON Web令牌)。一旦用户拥有JWT,它就会有效,直到达到编码的到期时间。
除了在每个经过身份验证的请求上针对会话表显式检查JWT令牌之外,是否有一种方法可以在JWT令牌到期时间之前使其无效(当用户注销时会发生这种情况),以便使用该令牌作为值进行任何后续请求在里面 X-ZUMO-AUTH
header永远不会到达任何表API或自定义API脚本?
我在Azure移动服务中使用自定义身份验证,方法是在自定义登录API中生成JWT(JSON Web令牌)。一旦用户拥有JWT,它就会有效,直到达到编码的到期时间。
除了在每个经过身份验证的请求上针对会话表显式检查JWT令牌之外,是否有一种方法可以在JWT令牌到期时间之前使其无效(当用户注销时会发生这种情况),以便使用该令牌作为值进行任何后续请求在里面 X-ZUMO-AUTH
header永远不会到达任何表API或自定义API脚本?
不是真的。当用户在客户端注销时,它使用的JWT并没有真正失效 - 它只是从客户端的内存中删除(参见上面的代码) 托管SDK, 例如)。 JWT验证是通过检查其签名与移动服务的主密钥完成的,除非此密钥被更改(这将使其无效) 所有 你的服务的JWT令牌,我认为不是你想要的),令牌将有效,直到它过期。
由于您自己生成JWT,因此可以考虑使用较小的过期时间,这可能对您的情况有所帮助。
支持JWT失效 (总有理由):
我最终为每个用户存储了一个唯一的字符串,我使用全局公共字符串进行哈希处理,因此我可以根据需要使单个用户的令牌或所有令牌无效。
否。注销用户并使JWT令牌无效的唯一方法是从会话表中删除/删除它。这是你已经在做的方式。