Пример #1
0
        public async Task<IActionResult> Login([FromBody]LoginViewModel model, string returnUrl = null)
        {
            var user = new ApplicationUser { UserName = model.Login };
            ViewData["ReturnUrl"] = returnUrl;

            if (!ModelState.IsValid)
                return new ObjectResult(new { message = "campos obrigatórios", status = "error" });

            if (!Services.Login.ValidaLogin(user.UserName))
                return new ObjectResult(new { message = "formato incorreto do login/email", status = "error" });

            try
            {
                var singIn = await _signInManager.PasswordSignInAsync(user.UserName, model.Password, model.RememberMe, lockoutOnFailure: false);
                if (singIn != SignInResult.Success)
                    return new ObjectResult(new { message = "login inválido", status = "error" });

                var _user = await _userManager.FindByNameAsync(model.Login);
                if (_user == null)
                    return new BadRequestObjectResult(new { message = $"Erro no servidor: Usuário não pode ser criado" });
                else
                    user = _user;
            }
            catch (System.Exception ex)
            {
                return new BadRequestObjectResult(new { message = $"Erro no servidor: {ex.Message}" });
            }

            return new HttpOkObjectResult(new { returnUrl = returnUrl });
        }