微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在浏览器会话之间保存和访问 jwt 令牌 cookie

如何解决在浏览器会话之间保存和访问 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?