public async Task <IActionResult> Get(string userName) { string askingUserName = User.Identity.Name; TegetgramUserDTO user = await _userService.GetUser(askingUserName, userName); return(Ok(user)); }
public async Task <IActionResult> Post([FromBody] UserRequestModel credentials) { ApiUser apiUser = new ApiUser(credentials.UserName); var result = await _userManager.CreateAsync(apiUser, credentials.Password); if (!result.Succeeded) { _logger.LogError($"User creation error: {String.Join(" | ", result.Errors.Select(x => x.Description).ToArray())}"); throw new ApplicationException("Could not create user."); } var now = DateTime.Now; var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_options.SecretKey)); var tokenHandler = new JsonWebTokenHandler(); var descriptor = new SecurityTokenDescriptor { Issuer = _options.Issuer, IssuedAt = now, NotBefore = now, Expires = now.AddHours(1), Claims = new Dictionary <string, object> { { JwtRegisteredClaimNames.Sub, apiUser.UserName } }, SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256) }; TegetgramUserDTO user = await _userService.GetUser(apiUser.UserName, apiUser.UserName); return(Ok(new { access_token = tokenHandler.CreateToken(descriptor), user = user })); }
public async Task <IActionResult> Get([FromBody] UserRequestModel credentials) { ApiUser apiUser = await _userManager.FindByNameAsync(credentials.UserName); if (apiUser == null) { throw new ApplicationException("Invalid user name or password."); } var result = await _signInManager.CheckPasswordSignInAsync(apiUser, credentials.Password, false); if (!result.Succeeded) { throw new ApplicationException("Invalid user name or password."); } var now = DateTime.Now; var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_options.SecretKey)); var tokenHandler = new JsonWebTokenHandler(); var descriptor = new SecurityTokenDescriptor { Issuer = _options.Issuer, IssuedAt = now, NotBefore = now, Expires = now.AddHours(1), Claims = new Dictionary <string, object> { { JwtRegisteredClaimNames.Sub, apiUser.UserName } }, SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256) }; TegetgramUserDTO user = await _userService.GetUser(apiUser.UserName, apiUser.UserName); return(Ok(new { access_token = tokenHandler.CreateToken(descriptor), user = user })); }