示例#1
0
        public async Task <ActionResult> LoginAsync(LoginViewModel loginViewModel)
        {
            UserLoginViewModel user = await _getUserByAccountQuery.ExecuteAsync(loginViewModel.Username, loginViewModel.Password);

            if (user != null)
            {
                if (!user.Enabled)
                {
                    return(StatusCode((int)HttpStatusCode.Forbidden, new { message = user.Reason }));
                }

                var jwtOptions = _jwtConfiguration.Value;
                jwtOptions.ValidFor = loginViewModel.RememberMe ? TimeSpan.FromHours(JwtValidTime.HAS_REMEMBER_ME_BY_HOURS)
                    : TimeSpan.FromHours(JwtValidTime.NOT_HAVE_REMEMBER_ME_BY_HOURS);

                var jwtUserAccount = new JwtUserAccount
                {
                    UserId     = user.Id,
                    UserName   = user.UserName,
                    UserCode   = user.UserCode,
                    LastName   = user.LastName,
                    MiddleName = user.MiddleName,
                    FirstName  = user.FirstName
                };

                return(new ObjectResult(new { accessToken = jwtUserAccount.GenerateToken(jwtOptions) }));
            }

            return(StatusCode((int)HttpStatusCode.Unauthorized, new { message = Message.WRONG_USERNAME_PASSWORD }));
        }
示例#2
0
        public async Task <IActionResult> LoginAsync([FromBody] LoginViewModel loginModel)
        {
            var employee = await _getUserInfoLogin.ExecuteAsync(loginModel.Username);

            if (employee == null)
            {
                return(StatusCode((int)HttpStatusCode.Unauthorized));
            }

            if (string.Compare(loginModel.Password.ToMD5(), employee.PassWord, StringComparison.OrdinalIgnoreCase) != 0)
            {
                return(StatusCode((int)HttpStatusCode.Unauthorized));
            }

            var jwtOptions = _jwtConfiguration.Value;

            jwtOptions.ValidFor = TimeSpan.FromHours(24);
            var jwtUserAccount = new JwtUserAccount
            {
                UserId      = employee.Id,
                UserName    = employee.UserName,
                DisplayName = (employee.FirstName + " " + employee.MiddleName + " " + employee.LastName).Replace("  ", " "),
                LastName    = employee.LastName,
                FirstName   = employee.FirstName,
                MiddleName  = employee.MiddleName
            };

            return(new ObjectResult(new { accessToken = jwtUserAccount.GenerateToken(jwtOptions), expired = jwtOptions.Expiration }));
        }
示例#3
0
        public async Task <ActionResult> RegisterAsync([FromBody] SaveCustomerViewModel model)
        {
            var result = await _saveCustomerCommand.ExecuteAsync(model);

            if (!result.Succeeded)
            {
                return(new ObjectResult(result));
            }

            CustomerViewModel user = result.Data as CustomerViewModel;

            if (user != null)
            {
                var jwtOptions = _jwtConfiguration.Value;
                jwtOptions.ValidFor = TimeSpan.FromHours(JwtValidTime.FOR_CUSTOMER_BY_HOURS);

                var jwtUserAccount = new JwtUserAccount
                {
                    UserId      = user.Id,
                    Email       = user.Email,
                    PhoneNumber = user.PhoneNumber,
                    LastName    = user.LastName,
                    MiddleName  = user.MiddleName,
                    FirstName   = user.FirstName
                };

                TokenViewModel tokenVM = new TokenViewModel()
                {
                    Id          = user.Id,
                    Email       = user.Email,
                    PhoneNumber = user.PhoneNumber,
                    LastName    = user.LastName,
                    MiddleName  = user.MiddleName,
                    FirstName   = user.FirstName,
                    Birthday    = user.Birthday,
                    Gender      = user.Gender,
                    CreatedDate = user.CreatedDate,
                    AccessToken = jwtUserAccount.GenerateToken(jwtOptions)
                };

                return(new ObjectResult(CommandResult.SuccessWithData(tokenVM)));
            }

            return(new ObjectResult(CommandResult.Failed(new CommandResultError()
            {
                Code = (int)HttpStatusCode.InternalServerError,
                Description = MessageConstant.SYSTEM_ERROR
            })));
        }
示例#4
0
        public async Task <ActionResult> CustomerLoginAsync(LoginViewModel loginViewModel)
        {
            UserLoginViewModel user = await _getCustomerByAccountQuery.ExecuteAsync(loginViewModel.Username, loginViewModel.Password);

            if (user != null)
            {
                if (!user.Enabled)
                {
                    return(StatusCode((int)HttpStatusCode.Forbidden, new { message = user.Reason }));
                }

                var jwtOptions = _jwtConfiguration.Value;
                jwtOptions.ValidFor = TimeSpan.FromHours(JwtValidTime.FOR_CUSTOMER_BY_HOURS);

                var jwtUserAccount = new JwtUserAccount
                {
                    UserId      = user.Id,
                    Email       = user.Email,
                    PhoneNumber = user.PhoneNumber,
                    LastName    = user.LastName,
                    MiddleName  = user.MiddleName,
                    FirstName   = user.FirstName
                };

                TokenViewModel tokenVM = new TokenViewModel()
                {
                    Id          = user.Id,
                    Email       = user.Email,
                    PhoneNumber = user.PhoneNumber,
                    LastName    = user.LastName,
                    MiddleName  = user.MiddleName,
                    FirstName   = user.FirstName,
                    Birthday    = user.Birthday,
                    Gender      = user.Gender,
                    CreatedDate = user.CreatedDate,
                    AccessToken = jwtUserAccount.GenerateToken(jwtOptions)
                };

                return(new ObjectResult(tokenVM));
            }

            return(StatusCode((int)HttpStatusCode.Unauthorized, new { message = MessageConstant.WRONG_USERNAME_PASSWORD }));
        }