public async Task <object> Post( [FromBody] AccountApiViewModel usuario, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfigurations tokenConfigurations) { bool credenciaisValidas = false; var responde = _mediator.Send(usuario.MapToCommand()).Result as AuthenticationCommandResponse; if (responde.Errors.Count() == 0) { credenciaisValidas = true; } if (credenciaisValidas) { ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(usuario.UserCode, "Login"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.UniqueName, usuario.UserCode) } ); DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao.AddDays(1) + 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 = null }); var token = handler.WriteToken(securityToken); return(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" }); } else { return(new { authenticated = false, message = string.Format("Falha ao autenticar : {0}", responde.Errors.First()) }); } }
public IActionResult Update([FromBody] AccountApiViewModel vm) { var result = _ar.Get(UserId); vm = _mapper.Map <AccountApiViewModel>(result); return(Ok(new ApiResultModel <AccountApiViewModel> { Data = vm })); }
public static AuthenticationCommandRequest MapToCommand(this AccountApiViewModel model) => new AuthenticationCommandRequest(model.UserCode, model.AccessKey);