Пример #1
0
        public UserViewModel Authenticate(LoginPasswordViewModel viewModel)
        {
            using (var uow = new UnitOfWork(ConnectionString))
            {
                viewModel.Password = Crypto.Encrypt(viewModel.Password);
                var user = this._mapp.Map <LoginPasswordViewModel, UserEntity>(viewModel);
                user = uow._userR.IsUserAuthenticated(user);

                if (user != null)
                {
                    return(this._mapp.Map <UserEntity, UserViewModel>(user));
                }

                throw new System.Exception("Usuário e/ou Senha inválidos");
            }
        }
Пример #2
0
        public IActionResult Authenticate([FromBody] LoginPasswordViewModel userViewModel)
        {
            try
            {
                var user = _userService.Authenticate(userViewModel);
                if (user == null)
                {
                    return(BadRequest(new { message = "Username or password is incorrect" }));
                }
                var menuViewModel = _menuService.GetMenuByUserId(user.Id);
                var userClaims    = new[]
                {
                    new Claim(ClaimTypes.Name, user.Name),
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
                };
                var token = new JwtServices().GenerateToken(_appSettings.Secret, _appSettings.ExpirationTokenTime, userClaims);

                this._userService.SaveRefreshToken(user.Id, token.RefreshToken);

                return(Ok(new ResultResponseViewModel <object>()
                {
                    IsSuccess = true,
                    Response = new {
                        token.Token,
                        token.RefreshToken,
                        Menu = menuViewModel
                    }
                }));
            }
            catch (Exception e)
            {
                return(Ok(new ResultResponseViewModel <Exception>()
                {
                    IsSuccess = false, Message = "Usuário e/ou Senha inválidos", Response = e
                }));
            }
        }