public async Task <ActionResult> Authenticate(UserRessource userRessource) { var user = await _userServices.Authenticate(userRessource.Username, userRessource.Password); if (user == null) { return(BadRequest(new { message = "username or password is incorrect" })); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_config.GetValue <string>("AppSettings:Secret")); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); return(Ok(new { user.Id, user.Username, user.FirstName, user.LastName, Token = tokenString })); }
public async Task <IActionResult> Register(UserRessource userResource) { // validation var validation = new SaveUSerRessourceValidator(); var validationResult = await validation.ValidateAsync(userResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var user = _mapper.Map <UserRessource, User>(userResource); // mappage var userSave = await _userServices.Create(user, userResource.Password); //send tocken var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_config.GetValue <string>("AppSettings:Secret")); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); return(Ok(new { Id = user.Id, Username = user.Username, FirstName = user.FirstName, LastName = user.LastName, Token = tokenString })); }