Ejemplo n.º 1
0
        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("Заполните форму"));
            }
        }
Ejemplo n.º 2
0
        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("*****@*****.**");
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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));
        }