public LoginResultModel Authenticate(JWTInfoModel loginInfo)
        {
            var loginResult = new LoginResultModel();
            var userlogin   = DataTest.UserList.FirstOrDefault(x => x.Username.ToUpper() == loginInfo.Username.ToUpper() && x.Password == loginInfo.Password);

            if (userlogin == null)
            {
                loginResult.Status = LoginStatus.Fail.ToString();
            }
            else
            {
                var role           = DataTest.RoleList.FirstOrDefault(x => x.Id == userlogin.RoleId);
                var listPermission = DataTest.PermissionList.Where(x => x.RoleId == userlogin.RoleId)
                                     .Select(x => x.Function)
                                     .ToList();
                loginInfo.RoleId = userlogin.RoleId;

                var jwtToken = JWTHelper.BuildToken(loginInfo);

                loginResult.Status      = LoginStatus.Success.ToString();
                loginResult.Username    = userlogin.Username;
                loginResult.Role        = role;
                loginResult.Permissions = listPermission;
                loginResult.AccessToken = jwtToken;
            }

            return(loginResult);
        }
Exemple #2
0
        public LoginResultModel Authentica(JWTInfoModel input)
        {
            var loginResult = new LoginResultModel();
            var user        = DataTest.Users.Where(u => u.Username == input.Username && u.Password == input.Password).FirstOrDefault();

            if (user == null)
            {
                loginResult.Status = (int)LoginStatus.Fail;
            }
            else
            {
                var userRole        = DataTest.UserRoles.Where(ur => ur.UserId == user.Id).Select(x => x.RoleId).ToList();
                var roles           = DataTest.Roles.Where(r => userRole.Any(ur => ur == r.Id)).ToList();
                var rolePermissions = DataTest.RolePermissions.Where(rp => roles.Any(r => r.Id == rp.RoleId)).Select(rp => rp.PermissionId).ToList();
                var permissions     = DataTest.Permissions.Where(p => rolePermissions.Any(rp => rp == p.Id)).Select(p => p.Function).ToList();
                input.Id = user.Id;
                var jwtToken = JWTHelper.BuildToken(input);

                loginResult.Status      = (int)LoginStatus.Success;
                loginResult.Username    = loginResult.Username;
                loginResult.Roles       = roles;
                loginResult.Permissions = permissions;
                loginResult.AccessToken = jwtToken;
            }
            return(loginResult);
        }
Exemple #3
0
        public IActionResult Authenticate([FromBody] AccountLoginModel account)
        {
            var jwtInfo = new JWTInfoModel
            {
                Username   = account.Username,
                Password   = account.Password,
                ExpireTime = DateTime.Now.AddMinutes(long.Parse(_iConfiguration["Jwt:ExpiresInMinutes"])),
                PrivateKey = _iConfiguration["Jwt:PrivateKey"]
            };

            var result = _iCoreService.Authenticate(jwtInfo);

            return(Ok(result));
        }
        public IActionResult Authentica(AccountLoginModel input)
        {
            var jwt = new JWTInfoModel
            {
                Username   = input.Username,
                Password   = input.Password,
                ExpireTime = DateTime.Now.AddMinutes(long.Parse(_configuration["Jwt:ExpiresInMinutes"])),
                PrivateKey = _configuration["Jwt:PrivateKey"]
            };

            var result = _coreService.Authentica(jwt);

            return(StatusCode(result.Status, result));
        }
        public static string BuildToken(JWTInfoModel model)
        {
            var key         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(model.PrivateKey));
            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var claims = new[] {
                new Claim(ClaimTypes.Name, model.Username),
                new Claim(ClaimTypes.Role, model.RoleId.ToString())
            };

            var token = new JwtSecurityToken(
                expires: model.ExpireTime,
                signingCredentials: credentials,
                claims: claims
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }