예제 #1
0
        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)
            }));
        }
예제 #2
0
        /// <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("密码错误");
            }
        }