如何解决在浏览器会话之间保存和访问 jwt 令牌 cookie
我希望我的标题措辞正确。我有一个 .net core 5 MVC 网站,它使用带有刷新令牌的 JWT 进行身份验证。如果用户选中“记住我”,我想让他们使用存储的刷新令牌自动重新登录网站。我已经在前端设置了那个复选框。我正在使用代码:
注意: claimIdentity 是 ClaimsIdentity,具有身份验证类型 CookieAuthenticationDefaults.AuthenticationScheme 和包含 JWT 令牌及其相应刷新令牌的声明列表。目前 jwt 令牌在 30 秒后过期(用于测试),刷新令牌在 6 个月后过期。
var authProperties = new AuthenticationProperties
{
AllowRefresh = true,ExpiresUtc = true,IsPersistent = true
};
await HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,new ClaimsPrincipal(claimsIdentity),authProperties);
根据 the docs,这会保存可跨浏览器会话访问的 cookie。我的问题是,如何访问该 cookie?直到控制器联系外部身份验证 API 并获得新令牌后,此代码才会运行。在向用户显示登录页面之前,有没有办法检查此令牌?按原样检查 Login HttpGet 函数而不是 Login HttpPost 函数?我可以获得令牌,我可以尝试刷新令牌(假设它没有过期)并绕过登录。
我是否遗漏了一些明显的东西,或者这应该是自动完成的?仍在学习中,提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。