我试图更好地了解jwt令牌是如何存储(id、访问和刷新)。当您添加OpenIdConnect时,您可以设置保存令牌的选项。使用以下配置,每当用户登录时,jwt令牌就会生成(无需单独调用授权端点来检索令牌)。
.AddOpenIdConnect("Test", options => {
options.SaveTokens = true;
}
据我所了解,它们保存在与ClaimsPrincipal一起返回的AuthenticationProperties集合中。您可以通过HttpContext.GetTokenAsync检索它们。
以下是示例:
var accessToken = await HttpContext.GetTokenAsync("access_token");
我试图更好地理解这些值是如何存储和检索的。我知道ClaimsPrincipal是与用户相关的标识/声明集合,但是身份验证属性是如何设置的呢?我如何单独访问身份验证属性的集合?是否有类/接口可以用来直接访问该类的属性?在ClaimsPrincipal类中没有找到任何有关身份验证属性的信息。
另外,由于访问令牌存储在身份验证属性中,更新值的唯一方法是重新认证(即要求用户再次登录)吗?我该如何更新值?还是最好提取该值并将其存储在其他位置以进行更新?