我正在尝试使用JWT DRF实现方式为用户提供一种保持登录状态的方式。
在documentation中,建议令牌过期后就无法刷新它们。
鉴于用户可能会关闭其浏览器,我仅有的两个选择要么是使用期限很长的令牌,要么将用户名/密码存储在localStorage中,这两个选项似乎都不安全。
是否有其他方法可以实现这一目标?另外,有一种方法可以根据用户的需求(只有选择“记住我”选项)才拥有长期存在的令牌
答案 0 :(得分:1)
是的,JWT仅用于短期认证会话,即使使用刷新也是如此。如果您是为浏览器设计的,建议您使用常规的旧SessionAuthentication来保持用户长期登录(例如30天)。
如果您想避免使用cookie,则可以使用OAuth2等短期令牌和长期令牌的组合,例如,签出Django OAuth Toolkit并与DRF集成。短期令牌就像JWT一样对会话进行身份验证,而长期令牌(生命周期为30至60天)用于从您的API获取短期令牌,并可以存储在localStorage中。