public async Task <IActionResult> Signup([FromBody] ApiSigninModel signupModel) { var user = new User { UserName = signupModel.Email, Email = signupModel.Email, Role = await _roleManager.FindByNameAsync(RoleType.User.ToString()) }; var result = await _userManager.CreateAsync(user, signupModel.Password); if (result.Succeeded) { await _userManager.AddToRoleAsync(user, RoleType.User.ToString()); } if (!result.Errors.Any()) { return(await Signin(signupModel)); } return(Unauthorized(new { message = result.Errors.ToList() })); }
public async Task <IActionResult> Signin([FromBody] ApiSigninModel signInModel) { var user = await _userManager.FindByNameAsync(signInModel.Email); if (user != null && await _userManager.CheckPasswordAsync(user, signInModel.Password)) { var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Role, _userManager.GetRolesAsync(user).Result.FirstOrDefault()) }), Expires = DateTime.UtcNow.AddHours(6), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.ApplicationSecret)), SecurityAlgorithms.HmacSha256) }; var tokenHandler = new JwtSecurityTokenHandler(); var securityToken = tokenHandler.CreateToken(tokenDescriptor); var token = tokenHandler.WriteToken(securityToken); return(Ok(new { BearerToken = token })); } return(Unauthorized()); }