public async Task <IActionResult> Login(UserInfoLoginDto userInfoLoginDto) { var userFromRepo = await _repo.Login(userInfoLoginDto.UserName, userInfoLoginDto.Password); if (userFromRepo == null) { return(Unauthorized()); } /// JWT Token payload var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username.ToString()) }; /// key var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); /// signin Credentials is signature var signinCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = signinCredentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token) })); }
/// <summary> /// 用户登录 /// </summary> /// <param name="account"></param> /// <param name="password"></param> /// <returns></returns> public UserInfoLoginDto Login(string account, string password) { if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password)) { throw new Exception("账号或者密码错误"); } var r = GetUsersOfInfo(new UserQueryPageDto { Page = 1, Size = 1, UserQuery = new UserQueryDto { Account = account, State = 1, SystemId = "d6cf967def18c2213b7908d63b35045b" } }); if (r.DataList.Count == 0) { throw new Exception("账号不存在"); } var r2 = GetUsersOfInfo(new UserQueryPageDto { Page = 1, Size = 1, UserQuery = new UserQueryDto { Account = account, Password = password, State = 1, SystemId = "d6cf967def18c2213b7908d63b35045b" } }); if (r2.DataList.Count != 0) { string token = IdentityHelper.NewSequentialGuid().ToString("N"); UserInfoLoginDto userInfoLoginDto = r.DataList[0].MapTo <UserInfoLoginDto>(); userInfoLoginDto.Token = token; return(userInfoLoginDto); } else { throw new Exception("密码错误"); } }