public async Task <TokenResponse> GenerateSecurityToken(SaveTokenResource client) { try { var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Email, client.ClientEmail) }) , Expires = DateTime.UtcNow.AddMinutes(double.Parse(_expDate)), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); Token tokenObj = new Token(); tokenObj.ClientEmail = client.ClientEmail; tokenObj.ClientToken = tokenHandler.WriteToken(token); return(new TokenResponse(tokenObj)); } catch (Exception e) { return(new TokenResponse($"An error occurred when generation token to {client.ClientEmail}: {e.Message}")); } }
public async Task <ActionResult <TokenResource> > PostLoginToken([FromBody] SaveTokenResource resource) { var jwt = new JwtService(_config); if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } // var result = await jwt.GenerateSecurityToken(resource); if (!result.Success) { return(BadRequest(result.Message)); } var tokenResource = _mapper.Map <Token, TokenResource>(result.Token); return(Ok(tokenResource)); }