【发布时间】:2018-12-29 12:12:10
【问题描述】:
如何更新 ASP.NET Core 2.1 身份验证 Cookie 中的声明值?
我的问题的一点背景:
我有一个使用 Cookie 身份验证的 dotnet Core 2.1 MVC 项目。
网站从使用不记名令牌进行身份验证的 API 获取大部分数据。不记名令牌的寿命相当短,API 还返回一个刷新令牌以获取新的不记名令牌。
当用户登录时,我从 API 获取令牌并将其作为声明存储在 auth cookie 中,如下所示:
var props = new AuthenticationProperties{ ... };
var claims = new[]
{
new Claim("ApiAccessToken", apiToken.AccessToken),
new Claim("ApiRefreshToken", apiToken.RefreshToken),
// other claims ...
};
var identity = new ClaimsIdentity(claims,
CookieAuthenticationDefaults.AuthenticationScheme);
await Request.HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(identity), props);
我在调用 API 之前使用 Polly 确保身份验证,如果第一次尝试 API 得到 401,我使用刷新令牌来获取新的不记名令牌。我想用这些新值更新 auth cookie 中的 ApiAccessToken 和 ApiRefreshToken 声明。
或者有没有更好的方法来处理这种情况?
谢谢。
【问题讨论】:
标签: c# asp.net-core asp.net-identity