我开始使用单页应用程序,并且我使用Javascript Web令牌来验证客户端(带有服务器API的JS客户端)。
在我的应用中,用户提供凭据(app auth,facebook,google),然后服务器检查用户是否存在并返回令牌。
客户端JS为每个请求添加令牌以使用服务器API。
当令牌发出时,它有一个到期时间和最长刷新时间。如果为令牌设置了短暂的到期时间,并且"良好"最大刷新时间我不得不知道何时刷新令牌。我到目前为止找到的最佳方法是在令牌过期时(5分钟前)检查客户端,然后发出刷新请求。然后我得到一个新令牌。这可以在达到最大刷新时间之前完成。然后,用户必须重新进行身份验证。
我见过的另一种方法是,在服务器上,如果令牌已接近或刚刚过期,它会自动刷新并返回给客户端(必须检测令牌更改并存储它)
但是......这个和单一令牌之间的区别是什么?#34;好"时间?
是否拥有一个短暂的令牌,可以在没有比一个长令牌更好的时间内更新?
答案 0 :(得分:0)
使用短期令牌的主要原因是防御session hijacking,当攻击者通过一种或另一种方法窃取会话凭证(在这种情况下是令牌)并在受害者身上恶意行动时会话。令牌越短,攻击者执行他们计划的任何恶意活动的时间就越短。