我已经成功完成身份验证,我知道向客户端返回令牌(JWT)。该令牌有一个到期日期/时间,因此我正在考虑将令牌保存在 cookie 中,以便对未来的登录进行身份验证,但这可能行不通。
然后我考虑将用户名和密码保存在 cookie 中,尽管我知道不建议这样做?
目前我有一个接受用户名和密码的表单,成功登录将提供用于访问其他端点的令牌。
该表格需要包含“记住我”,以便自动登录。
实现这一目标的最佳方法是什么?
我是否应该将用户名和密码存储在 cookie 中,如果不是,我如何在用户下次到达我的网站时自动进行身份验证。我提供的令牌即将过期,那么存储它还有什么意义吗?
提前致谢
不要将用户名或密码存储在 cookie 中。即使 cookie 是加密的,在 cookie 中存储像令牌这样的过期时间较短的凭证也比像密码这样具有较长保质期的凭证更好。
即使在 ASP.NET Web 窗体或 MVC 世界(窗体身份验证)中,“记住我”通常也只能在 cookie 过期之前起作用。 “记住我”并不意味着永远记住我,记住必须有一个有限的时间段。该时间可以从 cookie 中得出。您可以将 JWT 放入 cookie 中,并将 cookie 的生命周期设置为与 JWT 相同,例如一个小时。当用户在这段时间内返回您的应用程序时,cookie 不会过期,并且用户会自动登录。否则,他们必须重新登录。不要考虑存储用户名-密码并系统地登录。让用户输入凭据,这种方法会更安全。顺便说一句,请确保 cookie 已加密并且是仅 HTTP 的 cookie。
此机制类似于表单身份验证。您将使用 JWT 代替身份验证票证。您不需要 FAM 读取 cookie,而是需要拥有自己的 HttpModule 或消息处理程序来执行此操作并建立请求的身份。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)