Esempio n. 1
0
        public async Task <IActionResult> Login(LoginViewModel credentials)
        {
            var user = _userService.GetByEmail(credentials.Email);

            if (user != null && Crypto.VerifyHashedPassword(user.PasswordHash, credentials.Password))
            {
                var claims    = ClaimsOperator.GenerateClaims(user);
                var principal = ClaimsOperator.CreatePrincipal(claims);
                await HttpContext.SignInAsync(principal);

                return(RedirectToAction("Index", "Home"));
            }

            ModelState.AddModelError(nameof(credentials.Password), "Invalid login or password");

            return(View(credentials));
        }
Esempio n. 2
0
        public async Task <IActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User
                {
                    Email        = model.Email,
                    Name         = model.Name,
                    PasswordHash = model.Password
                };

                _userService.Create(user);
                var claims    = ClaimsOperator.GenerateClaims(user);
                var principal = ClaimsOperator.CreatePrincipal(claims);
                await HttpContext.SignInAsync(principal);

                return(RedirectToAction("EditAllergies"));
            }

            return(View(model));
        }