public async Task <OperationResponse <object> > Post( [FromBody] LoginRequestDto login, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfigurations tokenConfigurations) { OperationResponse <object> response = new OperationResponse <object>(); try { var userValid = _serviceLogin.Auth(login); if (userValid) { ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(login.Email, "Login"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.UniqueName, login.Email), new Claim(JwtRegisteredClaimNames.UniqueName, EncryptHelper.EncryptMD5(login.Password)) } ); DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao + TimeSpan.FromSeconds(tokenConfigurations.Seconds); var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = tokenConfigurations.Issuer, Audience = tokenConfigurations.Audience, SigningCredentials = signingConfigurations.SigningCredentials, Subject = identity, NotBefore = dataCriacao, Expires = dataExpiracao }); var token = handler.WriteToken(securityToken); var user = new { authenticated = true, created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"), expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"), accessToken = token, message = "OK" }; response.Data = user; response.Messages.Add(new OperationMessage { Description = LoginResource.Login_Sucessful, Type = OperationMessageTypes.Success }); return(response); } response.Messages.Add(new OperationMessage() { Description = LoginResource.Login_Error, Type = OperationMessageTypes.Error }); return(response); } catch (Exception ex) { _serviceLog.Add(LogHelper.GenerateLog(ControllerContext, "Auth", LoginResource.Login_Error, "", ex)); response.Messages.Add(new OperationMessage() { Description = LoginResource.Login_Error, Type = OperationMessageTypes.Error }); return(response); } }