public async Task <IActionResult> AdicionarMesa([FromBody] CadastrarMesaRequest request) { try { string proprietarioClaims = _httpContextAccessor.HttpContext.User.FindFirst("Proprietario").Value; AutenticarProprietarioResponse proprietarioResponse = JsonConvert.DeserializeObject <AutenticarProprietarioResponse>(proprietarioClaims); request.FkProprietario = proprietarioResponse.Id; var response = await _mediator.Send(request, CancellationToken.None); return(await ResponseAsync(response)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }
private object GerarToken(AutenticarProprietarioResponse response, SigningConfigurations signingConfigurations, TokenConfigurations tokenConfigurations) { if (response.Autenticado == true) { ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(response.Id.ToString(), "Id"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), //new Claim(JwtRegisteredClaimNames.UniqueName, response.Proprietario) new Claim("Proprietario", JsonConvert.SerializeObject(response)) } ); 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); 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", PrimeiroNome = response.Nome }); } else { return(response); } }