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); }
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 = "密码错误" })); }
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)); }