public async Task <string> GenerateEncodedToken(string email, ClaimsIdentity identity) { var now = DateTime.UtcNow; var user = await _userManager.FindByEmailAsync(email); var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, email), new Claim(JwtRegisteredClaimNames.Jti, await JWTOptions.NonceGenerator()), new Claim(JwtRegisteredClaimNames.Iat, UnixEpochDateGenerator.ToUnixEpochDate(now).ToString(), ClaimValueTypes.Integer64), identity.FindFirst(Constants.Strings.JwtClaimIdentifiers.Rol), identity.FindFirst(Constants.Strings.JwtClaimIdentifiers.Id) }; // создаем JWT-токен var jwt = new JwtSecurityToken( issuer: JWTOptions.ISSUER, audience: JWTOptions.AUDIENCE, notBefore: now, claims: claims, expires: now.Add(TimeSpan.FromMinutes(JWTOptions.LIFETIME)), signingCredentials: new SigningCredentials(JWTOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256)); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); return(encodedJwt); }