/// <summary> /// 客户登录 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <CustomerListDto> Authenticate(CustomerLoginDto input) { var customer = await _customerRepository.FirstOrDefaultAsync(c => c.Account.Equals(input.Account)); if (customer == null) { throw new UserFriendlyException("该账户不存在"); } if (!customer.Password.Equals(input.Password)) { throw new UserFriendlyException("密码错误"); } var dto = customer.MapTo <CustomerListDto>(); if (customer.License.HasValue) { var pro = await _objectManager.GetOrNullAsync(customer.License.Value); if (pro != null) { dto.LicenseUrl = Host + pro.Url; } } if (customer.IdentityCard.HasValue) { var pro = await _objectManager.GetOrNullAsync(customer.IdentityCard.Value); if (pro != null) { dto.IdentityCardUrl = Host + pro.Url; } } return(dto); }
public async Task <IActionResult> CustomerLogin(CustomerLoginDto customerLoginDto) { var customerFromRepo = await _authRepo.CustomerLogin(customerLoginDto.Email.ToLower(), customerLoginDto.Password); if (customerFromRepo == null) { return(Unauthorized()); } var claims = new [] { new Claim(ClaimTypes.NameIdentifier, customerFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, customerFromRepo.Email) }; var key = new SymmetricSecurityKey(Encoding.UTF8 .GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token), username = customerFromRepo.FirstName, role = customerFromRepo.Role })); }
public async Task <IActionResult> Login([FromBody] CustomerLoginDto model) { var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false); if (result.Succeeded) { var token = GenerateToken(model.Email); var user = _customerService.GetCustomerByTerm(model.Email); return(Json(new { user, token, tokenExpireData = DateTime.Now.AddDays(1) })); } return(Json(JsonResultData.Error("Username or password isn't correct."))); }
public async Task <IActionResult> Login([FromBody] CustomerLoginDto model) { var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false); if (result.Succeeded) { var token = GenerateToken(model.Email); var user = _userService.GetCustomerByTerm(model.Email); return(Json(new { user, token })); } return(BadRequest()); }
public async Task <ActionResult <ApiResponse <AuthUserDto> > > Login(CustomerLoginDto dto) { try { var authUser = await _customerAuthService.Authenticate(dto.PhoneNo, dto.Password); if (authUser == null) { throw new Exception("Invalid phone number or password."); } return(authUser.CreateSuccessResponse("Logged in successfully")); } catch (Exception exception) { return(BadRequest(exception.CreateErrorResponse())); } }
public async Task <ActionResult <UserDto> > Login(CustomerLoginDto customerLoginDto) { var customer = await _context.Customer.FirstOrDefaultAsync(x => x.UserName == customerLoginDto.Username); if (customer == null) { return(Unauthorized("Invalid username or password.")); } if (!VerifyPasswordHash(customerLoginDto.Password, customer.PasswordHash, customer.PasswordSalt)) { return(null); } return(new UserDto { Username = customer.UserName, Token = _tokenService.CreateToken(customer) }); }