public IActionResult Authenticate( [FromBody] [SwaggerRequestBody(@"For example: <br /> { ""userName"": ""Admin"", ""password"": """" }")] AuthenticationStandardLogonParameters logonParameters ) { ApplicationUser user; try { user = (ApplicationUser)securityAuthenticationService.Authenticate(logonParameters); } catch (Exception ex) { if (ex is IUserFriendlyException) { return(Unauthorized(ex.Message)); } else { return(Unauthorized()); } } IList <Claim> claims = new List <Claim>(); claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Oid.ToString())); // You can save logonParameters for further use. claims.Add(new Claim("LogonParams", objectConverter.Pack(logonParameters))); var issuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["Authentication:Jwt:IssuerSigningKey"])); var token = new JwtSecurityToken( issuer: configuration["Authentication:Jwt:Issuer"], audience: configuration["Authentication:Jwt:Audience"], claims: claims, expires: DateTime.Now.AddHours(2), signingCredentials: new SigningCredentials(issuerSigningKey, SecurityAlgorithms.HmacSha256) ); return(Ok(new JwtSecurityTokenHandler().WriteToken(token))); }