Exemple #1
0
        public async Task <ActionResult <string> > Auth([FromBody] Login user)
        {
            try {
                if (user == null)
                {
                    return(BadRequest("Body is null".ToBadRequest()));
                }
                _log.Information("User {email} trying to Sign in on {date} ", user.Email, DateTime.Now);
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState.ToBadRequest()));
                }
                User userFromDb = await _context.Users.FirstOrDefaultAsync(u => u.Email == user.Email);

                if (userFromDb == null)
                {
                    return(BadRequest("Wrong email".ToBadRequest()));
                }
                if (!userFromDb.Compare(user.Password))
                {
                    return(Unauthorized("Wrong password".ToBadRequest()));
                }
                var token = JWT.GetToken(userFromDb);
                _log.Information("User {email} Sign in on {date} ", user.Email, DateTime.Now);
                return(Created("login", Format.ToMessage(userFromDb.ToMessage(), 201, token)));
            } catch (Exception e) {
                _log.Fatal(e.Message + "on Auth User on {Date}", DateTime.Now);
                return(StatusCode(500));
            }
        }
        public void GetRegisteredUsersWithAuth()
        {
            // Arrange
            var controller = new AdminController();

            // Act
            var result = controller.GetRegisteredUsers(new GetRegisteredUsersViewModel.Request
            {
                token = JWT.GetToken("*****@*****.**")
            });

            // Assert
            Assert.IsNotNull(result);

            Assert.IsInstanceOfType(result.Data, typeof(JsonResultViewModel));
            var jsonResult = (JsonResultViewModel)result.Data;

            Assert.IsNotNull(jsonResult);
            Assert.IsTrue(jsonResult.is_successful);

            Assert.IsInstanceOfType(jsonResult.data, typeof(GetRegisteredUsersViewModel.Response));
            var data = (GetRegisteredUsersViewModel.Response)jsonResult.data;

            Assert.IsNotNull(data);
            Assert.IsNotNull(data.users);
            Assert.AreNotEqual(0, data.users.Count);
        }
Exemple #3
0
        public void GetPostWithAuth()
        {
            // Arrange
            var controller = new HomeController();

            // Act
            var result = controller.GetPost(new GetPostViewModel.Request
            {
                token = JWT.GetToken("*****@*****.**")
            });

            // Assert
            Assert.IsNotNull(result);

            Assert.IsInstanceOfType(result.Data, typeof(JsonResultViewModel));
            var jsonResult = (JsonResultViewModel)result.Data;

            Assert.IsNotNull(jsonResult);
            Assert.IsTrue(jsonResult.is_successful);

            Assert.IsInstanceOfType(jsonResult.data, typeof(GetPostViewModel.Response));
            var data = (GetPostViewModel.Response)jsonResult.data;

            Assert.IsNotNull(data);
            Assert.IsTrue(data.is_complete_passage);
        }
        public async Task <ActionResult <string> > Auth([FromBody] User user)
        {
            try {
                if (user == null)
                {
                    return(BadRequest("user object is null".ToBadRequest()));
                }

                User userFromDb = await _context.Users.FirstOrDefaultAsync(u => u.Email == user.Email);

                if (userFromDb == null)
                {
                    return(BadRequest("Wrong email".ToBadRequest()));
                }

                if (!userFromDb.Compare(user.Password))
                {
                    return(BadRequest("Wrong password".ToBadRequest()));
                }
                var token    = JWT.GetToken(userFromDb);
                var response = new {
                    meta =
                        token
                };
                return(Ok(response));
            } catch (Exception e) {
                return(StatusCode(500));
            }
        }
        public ActionResult <string> Auth([FromBody] User user)
        {
            try {
                if (user == null)
                {
                    throw new BadRequestException("user object is null");
                }

                User userFromDb = _dbContext.Users.FirstOrDefault(u => u.Email == user.Email);
                if (userFromDb == null)
                {
                    throw new BadRequestException("Wrong email");
                }

                if (!userFromDb.Compare(user.Password))
                {
                    throw new BadRequestException("Wrong password");
                }
                var token    = JWT.GetToken(userFromDb);
                var response = new {
                    meta =
                        token
                };
                return(Ok(response));
            } catch (Exception e) {
                return(BadRequest(e.Message.ToBadRequest()));
            }
        }
        public JsonResult Login([FromBody] LoginViewModel.Request request)
        {
            var response = new JsonResultViewModel();

            try
            {
                var user = UnitOfWork.UserRepository.FindUserByEmail(request.email);

                if (user == null)
                {
                    return(Json(new JsonResultViewModel
                    {
                        error_message = "User not found",
                        error_type = ResponseErrorType.UserNotFound
                    }));
                }

                if (user.Password != Hashing.GetSha1(request.hash.ToLower() + "ConstValue"))
                {
                    return(Json(new JsonResultViewModel
                    {
                        error_message = "Wrong password",
                        error_type = ResponseErrorType.WrongPassword
                    }));
                }

                var accessToken = JWT.GetToken(request.email);

                response.data = new LoginViewModel.Response
                {
                    access_token = accessToken,
                    email        = user.Email,
                    role_id      = user.RoleId
                };
                response.is_successful = true;
            }
            catch (Exception ex)
            {
                response = new JsonResultViewModel
                {
                    error_message = ex.Message,
                    error_type    = ResponseErrorType.UnexpectedError
                };
            }

            return(Json(response));
        }
        public async Task <IActionResult> Login4AntdPro([FromBody] LoginVM model)
        {
            string userName = model.userName;
            string password = model.password;

            if (string.IsNullOrEmpty(password))
            {
                return(Json(new
                {
                    status = "error",
                    message = "密码不能为空"
                }));
            }

            var result = await _userService.ValidateUserPassword(userName, model.password);

            if (result)
            {
                var user      = (await _userService.GetUsersByNameAsync(userName)).First();
                var userRoles = await _userService.GetUserRolesAsync(user.Id);

                var jwt           = JWT.GetToken(user.Id, user.UserName, userRoles.Any(r => r == Role.Admin || r == Role.SuperAdmin));
                var userFunctions = await _permissionService.GetUserPermission(user.Id);

                dynamic param = new ExpandoObject();
                param.userName = user.UserName;
                TinyEventBus.Instance.Fire(EventKeys.USER_LOGIN_SUCCESS, param);

                return(Json(new
                {
                    status = "ok",
                    token = jwt,
                    type = "Bearer",
                    currentAuthority = userRoles.Select(r => r.ToString()),
                    currentFunctions = userFunctions
                }));
            }

            return(Json(new
            {
                status = "error",
                message = "密码错误"
            }));
        }
        public async Task <IActionResult> Login4AntdPro([FromBody] LoginVM model)
        {
            string password = model.password;

            if (string.IsNullOrEmpty(password))
            {
                return(Json(new
                {
                    status = "error",
                    message = "密码不能为空"
                }));
            }

            var result = await _settingService.ValidateAdminPassword(password);

            if (result)
            {
                var jwt = JWT.GetToken();

                //addlog
                await _sysLogService.AddSysLogAsync(new Data.Entity.SysLog
                {
                    LogTime = DateTime.Now,
                    LogType = Data.Entity.SysLogType.Normal,
                    LogText = $"管理员登录成功"
                });

                return(Json(new
                {
                    status = "ok",
                    token = jwt,
                    type = "Bearer",
                    currentAuthority = "admin"
                }));
            }

            return(Json(new
            {
                status = "error",
                message = "密码错误"
            }));
        }
Exemple #9
0
        public async Task <IActionResult> Login4AntdPro([FromBody] LoginVM model)
        {
            string password = model.password;

            if (string.IsNullOrEmpty(password))
            {
                return(Json(new
                {
                    status = "error",
                    message = "密码不能为空"
                }));
            }

            var result = await _settingService.ValidateAdminPassword(password);

            if (result)
            {
                var jwt = JWT.GetToken();

                TinyEventBus.Instance.Fire(EventKeys.ADMIN_LOGIN_SUCCESS);

                return(Json(new
                {
                    status = "ok",
                    token = jwt,
                    type = "Bearer",
                    currentAuthority = "admin"
                }));
            }

            return(Json(new
            {
                status = "error",
                message = "密码错误"
            }));
        }
        public JsonResult Register([FromBody] RegisterViewModel.Request request)
        {
            var response = new JsonResultViewModel();

            try
            {
                if (request.hash.Length < 8)
                {
                    return(Json(new JsonResultViewModel
                    {
                        error_message = "Weak password",
                        error_type = ResponseErrorType.ShortPassword
                    }));
                }

                var emailAddressAttribute = new EmailAddressAttribute();
                if (!emailAddressAttribute.IsValid(request.email))
                {
                    return(Json(new JsonResultViewModel
                    {
                        error_message = "Invalid email",
                        error_type = ResponseErrorType.InvalidEmail
                    }));
                }

                if (UnitOfWork.UserRepository.GetUsers().Any(user => user.Email == request.email))
                {
                    return(Json(new JsonResultViewModel
                    {
                        error_message = "Duplicate email",
                        error_type = ResponseErrorType.DuplicateEmail
                    }));
                }

                UnitOfWork.UserRepository.AddUser(new User
                {
                    Email        = request.email,
                    Password     = Hashing.GetSha1(request.hash.ToLower() + "ConstValue"),
                    RegisterDate = DateTime.Now.ToString("MM/dd/yyyy HH:mm"),
                    RoleId       = 2
                });

                var accessToken = JWT.GetToken(request.email);

                if (!request.email.Equals("*****@*****.**"))
                {
                    UnitOfWork.Save();
                }

                response.data = new RegisterViewModel.Response
                {
                    access_token = accessToken,
                    email        = request.email,
                    role_id      = 2
                };
                response.is_successful = true;
            }
            catch (Exception ex)
            {
                response = new JsonResultViewModel
                {
                    error_message = ex.Message,
                    error_type    = ResponseErrorType.UnexpectedError
                };
            }

            return(Json(response));
        }