Angular 反应(或角度)+;JWT认证&x2B;会话/Cookies
我的应用服务器使用JWT身份验证,我的前端是React(但就这个问题而言,也可能是角度) 用户首次登录时,应用程序将交换用户提供的用户名+密码,并获取JWT令牌,以向应用程序服务器发出内部API请求 根据用户体验,我真的希望用户不必在每次访问“myapp.com”时都输入用户名+密码。但这提出了另一个问题。出于安全目的,JWT密钥通常是短期的,必须在密钥的“寿命”结束后使用旧的JWT(短期)或新的用户名+密码续订,并且不允许再续订 在这种情况下,维护无麻烦用户体验的常见做法是什么?JWT密钥是否异常长寿,只是使用Cookie保留JWT令牌,还是在Cookie中实际保留用户名+密码?如果是这样的话,我会非常惊讶Angular 反应(或角度)+;JWT认证&x2B;会话/Cookies,angular,reactjs,authentication,jwt,Angular,Reactjs,Authentication,Jwt,我的应用服务器使用JWT身份验证,我的前端是React(但就这个问题而言,也可能是角度) 用户首次登录时,应用程序将交换用户提供的用户名+密码,并获取JWT令牌,以向应用程序服务器发出内部API请求 根据用户体验,我真的希望用户不必在每次访问“myapp.com”时都输入用户名+密码。但这提出了另一个问题。出于安全目的,JWT密钥通常是短期的,必须在密钥的“寿命”结束后使用旧的JWT(短期)或新的用户名+密码续订,并且不允许再续订 在这种情况下,维护无麻烦用户体验的常见做法是什么?JWT密钥是否
用用户的IP地址对JWT进行编码,并赋予其无限的生命,这有意义吗?因此,如果其他人(或用户本人)使用不同的位置,他/她必须重新输入密码并获取该位置的不确定密钥?我们遵循的模式是,我们通常将用户身份令牌的令牌到期日设置为一天。访问令牌大约需要3-4小时 当用户登录时,我们使用他的凭据获取标识令牌,并将其存储在localStorage中。然后,我们触发另一个请求,使用我们拥有的标识令牌获取webapp的客户端访问令牌,并将客户端访问令牌保存在sessionStorage中 对于所有后续请求,我们从会话存储中提取它并将其与请求一起发送 当用户关闭选项卡(会话)时,访问令牌将丢失,并在下次使用标识令牌再次打开时重新获取 所以他必须每天登录一次 如果您更担心有人从存储中窃取令牌,可以使用AES对令牌进行加密和解密 希望这有帮助