我有一个Web API后端,该后端具有一个身份验证端点,用于检索访问令牌和刷新令牌。我的客户已经使用HttpContext
检索了访问令牌并创建了一个新的身份登录用户。
但是如何使用ASP.NET MVC客户端中的刷新令牌自动获取新的访问令牌。
我已经将整个后端用于此部分。
我尝试将Bearer身份验证方案添加到客户端的服务中。 现在,我正在使用Cookie身份验证方案。
向服务添加身份验证:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options => { options.LoginPath = "/Home/Index"; });
这是我登录用户的方式:
var token = JsonConvert.DeserializeObject<Token>(result);
AuthenticationProperties options = new AuthenticationProperties()
{
AllowRefresh = true,
IsPersistent = true,
ExpiresUtc = DateTimeOffset.FromUnixTimeMilliseconds(token.Expiry),
};
// TODO: new claim for the user name
var claims = new[]
{
new Claim(ClaimTypes.Name, dto.Email),
new Claim(ClaimTypes.Role, dto.Role),
new Claim("AccessToken", $"Bearer {token.AccessToken}"),
};
var identity = new ClaimsIdentity(claims, "ApplicationCookie");
var principal = new ClaimsPrincipal(identity);
HttpContext.SignInAsync(principal, options);
也许这不是验证我的客户端的最佳方法,但是到目前为止,它仍然有效。
我需要将后端和客户端分开,因为移动客户端也使用相同的后端。
谢谢。