コード例 #1
0
        public IActionResult Login([FromBody] LoginViewModel loginViewModel)
        {
            if (string.IsNullOrEmpty(loginViewModel.Email) && string.IsNullOrEmpty(loginViewModel.Password))
            {
                return(Unauthorized());
            }
            StoredFileUserDTO userByEmail = _userLogic.GetUserByEmail(loginViewModel.Email);

            if (userByEmail != null && userByEmail.Password.Equals(_accountLogic.EncryptPassword(loginViewModel.Password)))
            {
                int      minutesToExpire = loginViewModel.RememberMe ? 1440 : 60;
                DateTime expirationDate  = DateTime.Now.AddMinutes(minutesToExpire);
                Guid     token           = Guid.NewGuid();
                _accountLogic.AddToken(new TokenDTO
                {
                    AccessToken    = token.ToString(),
                    ExpirationDate = expirationDate,
                    UserId         = userByEmail.UserId
                });
                HttpContext.Response.Cookies.Append("AuthenticationToken", token.ToString(), new CookieOptions {
                    Expires = expirationDate
                });
                return(Ok());
            }

            return(NotFound());
        }