public IActionResult Login(LoginUserForm loginViewModel) { if (ModelState.IsValid) { var user = _userService.Get(loginViewModel.Login); if (_accountService.Verify(user, loginViewModel.Password)) { var identity = _accountService.GetIdentity(user); if (identity != null) { var tokens = _accountService.Login(user, identity); _cookieService.RemoveCookie(HttpContext, AuthOptions.REFRESH_TOKEN_COOKIE); _cookieService.SetCookie(HttpContext, AuthOptions.REFRESH_TOKEN_COOKIE, tokens.RefreshToken); return(Ok(tokens.AccessToken)); } } return(BadRequest("Неправильный логин или пароль")); } else { return(BadRequest("Заполните форму")); } }
public async Task Test7() { await SeedData(); var userLoginForm = new LoginUserForm { Email = "*****@*****.**", Password = "******" }; //Getting token by email and password var response0 = await Client.PostAsync("/token", new StringContent(JsonConvert.SerializeObject(userLoginForm), Encoding.UTF8, "application/json")); var jwtData = JsonConvert.DeserializeObject <LoginResponseModel>(response0.Content.ReadAsStringAsync().Result); //Check that user Unauthorized var response1 = await Client.GetAsync("/currentuser"); response1.StatusCode.Should().BeEquivalentTo(StatusCodes.Status401Unauthorized); //adding token to request and check this end-point again Client.DefaultRequestHeaders.Add("Authorization", "Bearer " + jwtData.AccessToken); var response2 = await Client.GetAsync("/currentuser"); var user = JsonConvert.DeserializeObject <User>(response2.Content.ReadAsStringAsync().Result); user.Email.Should().BeEquivalentTo("*****@*****.**"); }
public async Task <HttpResponseMessage> Login(LoginUserForm userFormValues) { var json = JsonSerializer.Serialize(userFormValues); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await Post("/user/login", content); if (response.IsSuccessStatusCode) { var stringContent = await response.Content.ReadAsStringAsync(); var user = JsonSerializer.Deserialize <User>(stringContent, _jsonSerializerOptions); _storage.CurrentUser = user; } return(response); }
public async Task <IActionResult> Login(LoginUserForm model, string returnUrl = null) { ViewData["ReturnURL"] = returnUrl; if (ModelState.IsValid) { var result = await this.signInManager.PasswordSignInAsync(model.UserName, model.Password, true, false); if (result.RequiresTwoFactor) { return(RedirectToAction(nameof(LoginWith2fa), new { returnUrl })); } else { ModelState.AddModelError(string.Empty, "Login Invalid."); return(View(model)); } } return(View(model)); }