public IActionResult Redirect() { var jwtToken = _JwtService.GenerateJwt(User); // temporary claim payload redirect solution for demo purposes return(Redirect(_FrontendService.RedirectSuccesfullLogin(jwtToken))); }
public async Task <IActionResult> Login(LoginViewModel model) { Logger.LogInformation("Login action has been requested."); if (!ModelState.IsValid) { Logger.LogWarning("Bad request, ModelState is invalid"); return(new OkObjectResult(new LoginResponseModel() { Content = new { }, StatusCode = HttpStatusCode.BadRequest, Error = "bad_request", Description = "Bad Request." })); } ClaimsIdentity identity = await JwtService.GetClaimsIdentity(model.UserName, model.Password); if (identity == null) { Logger.LogWarning("Faild to get user claims."); return(new JsonResult(new LoginResponseModel() { Content = new { }, StatusCode = HttpStatusCode.Unauthorized, Error = "login_failure", Description = "Faild to login. Please verify your username or password." })); } string jwtResponse = await JwtService .GenerateJwt(identity, JwtService, model.UserName, _jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented }); Logger.LogInformation("JwtToken has succesfully been created"); return(new OkObjectResult(jwtResponse)); }
public async Task <UserManagerResponse> Login([FromBody] LoginModelDto model) { var user = await _userManager.FindByEmailAsync(model.Email); if (user == null) { return(new UserManagerResponse { IsSucces = false, Message = "User with such email doesn't exist" }); } var checkingPasswordResult = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false); if (checkingPasswordResult.Succeeded) { return(await JwtService.GenerateJwt(user, _userManager, _authenticationOptions)); } return(new UserManagerResponse { Message = "Incorect password" }); }
public async Task <UserManagerResponse> Register([FromBody] RegisterModelDto model) { if (ModelState.IsValid) { var userCheck = await _userManager.FindByEmailAsync(model.Email); if (userCheck == null) { var user = new User { Email = model.Email, UserName = model.Email, FirstName = model.FirstName, LastName = model.LastName }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var resultRole = _roleManager.RoleExistsAsync("user").Result; if (!resultRole) { var role = new Role("user"); var roleResult = _roleManager.CreateAsync(role).Result; if (!roleResult.Succeeded) { return(new UserManagerResponse { Message = "Such User Already Exist" }); } } await _userManager.AddToRoleAsync(user, "user"); await _signInManager.SignInAsync(user, false); var encodedToken = JwtService.GenerateJwt(user, _userManager, _authenticationOptions); return(await JwtService.GenerateJwt(user, _userManager, _authenticationOptions)); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); return(new UserManagerResponse { Message = "Error" }); } } } return(new UserManagerResponse { Message = "User With Such Email Already Exist", IsSucces = false }); } return(new UserManagerResponse { Message = "Successfully", IsSucces = true }); }