private async Task <IdentityResult> CreateAccountAsync(SignUpDto signUpDto) { SwmsUser swmsUser = new SwmsUser(); swmsUser.Email = signUpDto.Email; swmsUser.UserName = signUpDto.UserName; return(await _userManager.CreateAsync(swmsUser, signUpDto.Password)); }
public async Task <ActionResult <SwmsUser> > Get(long id) { SwmsUser swmsUser = await _userManager.FindByIdAsync(id.ToString()); if (swmsUser == null) { return(NotFound()); } return(swmsUser); }
public async Task <IActionResult> Delete(long id) { SwmsUser swmsUser = await _userManager.FindByIdAsync(id.ToString()); if (swmsUser == null) { return(NotFound()); } await _userManager.DeleteAsync(swmsUser); return(NoContent()); }
async Task <object> ISwmsAuthorizer.Authenticate(ControllerBase controllerBase, LoginDto loginDto) { SignInResult signInResult = await SignInAsync(loginDto); if (!signInResult.Succeeded) { return(controllerBase.BadRequest(signInResult)); } SwmsUser appUser = await _userManager.FindByNameAsync(loginDto.UserName); return(_jwtGenerator.GenerateJwtToken(appUser)); }
async Task <ActionResult <SwmsUser> > IUserEmailConfirmer.RequestConfirmationEmail(ControllerBase controllerBase, RequestConfirmationEmailDto requestConfirmationEmailDto) { SwmsUser swmsUser = await _userManager.FindByEmailAsync(requestConfirmationEmailDto.Email); if (swmsUser == null) { return(controllerBase.NotFound()); } string token = await _userManager.GenerateEmailConfirmationTokenAsync(swmsUser); string confirmEmailUrl = CreateConfirmationUrl(controllerBase, swmsUser.Id, token); SendEmailRequest sendEmailRequest = CreateConfirmationEmailRequest(confirmEmailUrl, swmsUser); await _emailSender.SendEmailAsync(sendEmailRequest); return(controllerBase.Ok()); }
public object GenerateJwtToken(SwmsUser user) { List <Claim> claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Sub, user.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; string issuer = _jwtSettings.Issuer; string audience = issuer; SymmetricSecurityKey key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtSettings.Secret)); DateTime expires = DateTime.Now.AddDays(Convert.ToDouble(_jwtSettings.ExpireDays)); SigningCredentials signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); JwtSecurityToken token = new JwtSecurityToken(issuer, audience, claims, null, expires, signingCredentials); return(new JwtSecurityTokenHandler().WriteToken(token)); }
async Task <ActionResult <SwmsUser> > IUserEmailConfirmer.ConfirmEmail(ControllerBase controllerBase, ConfirmEmailDto confirmEmailDto) { SwmsUser swmsUser = await _userManager.FindByIdAsync(confirmEmailDto.UserId.ToString()); if (swmsUser == null) { return(controllerBase.NotFound()); } IdentityResult identityResult = await _userManager.ConfirmEmailAsync(swmsUser, confirmEmailDto.Token); if (identityResult.Succeeded) { return(controllerBase.Ok()); } return(controllerBase.BadRequest()); }
private static SendEmailRequest CreateConfirmationEmailRequest(string confirmEmailUrl, SwmsUser swmsUser) { string encodedUrl = HtmlEncoder.Default.Encode(confirmEmailUrl); string message = $"Please confirm your account by <a href='{encodedUrl}'>clicking here</a>."; SendEmailRequest sendEmailRequest = new SendEmailRequest(swmsUser.Email, "Confirm your email", message); return(sendEmailRequest); }
public async Task <IActionResult> Put(SwmsUser swmsUser) { await _userManager.UpdateAsync(swmsUser); return(NoContent()); }