Я использую asp.net identiy для защиты моего API, я использую следующую функцию для создания Access Token для пользователей, когда они входят в систему
private string GenerateAccessToken(string userName, string role)
{
ClaimsIdentity oAuthIdentity = new ClaimsIdentity(Startup.OAuthOptions.AuthenticationType);
oAuthIdentity.AddClaim(new Claim(ClaimTypes.Name, userName));
oAuthIdentity.AddClaim(new Claim(ClaimTypes.Role, role));
AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, new AuthenticationProperties());
DateTime currentUtc = DateTime.UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(365));
string accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);
Request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
return accessToken;
}
Все хорошо, пока я не выполню обновление пароля учетной записи,после этого я обновляю SecurityStamp
UserManager.UpdateSecurityStampAsync(loggedinUser.Id);
, но проблема в том, что токен все еще можно использовать для вызова моего API без каких-либо проблем.Так как мне проверять SecurityStamp с каждым запросом?