public async Task <Dictionary <string, object> > Handle(GetCitizenDetails request, CancellationToken cancellationToken) { var citizen = _context.Citizens.SingleOrDefault(c => c.CNP == request.CNP); await _context.SaveChangesAsync(cancellationToken); bool succes = false; var response = new Dictionary <string, object>(); string tokenData = ""; if (citizen != null) { var tokenHandler = new JwtSecurityTokenHandler(); var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection("Keys").GetSection("Key").Value)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var claims = new[] { new Claim("CNP", ""), new Claim("VotedFor", citizen.VotedFor.ToString()) }; var token = new JwtSecurityToken("https://localhost:44380", "https://localhost:44380", claims, DateTime.UtcNow, expires: DateTime.UtcNow.AddMinutes(120), signingCredentials: credentials); tokenData = new JwtSecurityTokenHandler().WriteToken(token); succes = true; response.Add("Token", tokenData); } response.Add("succes", succes); response.Add("citizen", citizen); return(response); }
public async Task <ActionResult <Citizen> > Authorize([FromBody] GetCitizenDetails cnp) { var response = await _mediator.Send(cnp); if (response == null) { return(NotFound()); } return(Ok(response)); }