Exemplo n.º 1
0
        public LoginGetModel Authenticate(string email, string password)
        {
            var user = context.Users
                       .SingleOrDefault(x => x.Email == email &&
                                        x.Password == ComputeSha256Hash(password));

            // return null if user not found
            if (user == null)
            {
                return(null);
            }

            // authentication successful so generate jwt token
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Email.ToString()),
                    new Claim(ClaimTypes.Role, user.UserRole.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token  = tokenHandler.CreateToken(tokenDescriptor);
            var result = new LoginGetModel
            {
                Id       = user.Id,
                Email    = user.Email,
                Token    = tokenHandler.WriteToken(token),
                UserRole = user.UserRole
            };

            var restaurantId = context.Employees.Where(e => e.UserId == user.Id).Select(e => e.RestaurantId).FirstOrDefault();

            if (user.UserRole == Role.Employee)
            {
                result.RestaurantId = restaurantId;
            }
            ;

            // remove password before returning
            return(result);
        }
Exemplo n.º 2
0
        public LoginGetModel Authenticate(string username, string password)
        {
            var user = context.Users
                       .Include(u => u.User_UserRoles)
                       .ThenInclude(u_ur => u_ur.UserRole)
                       .AsNoTracking()
                       .FirstOrDefault(u => u.Username == username && u.Password == ComputeSha256Hash(password));


            // return null if user not found
            if (user == null)
            {
                return(null);
            }

            string RoleName = user_userRoleService.GetUserRoleNameById(user.Id);  //imi aduc numele rolului

            // authentication successful so generate jwt token
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Username.ToString()),
                    new Claim(ClaimTypes.Role, RoleName),                               //DataRegistered si rolul imi vin ca string
                    new Claim(ClaimTypes.UserData, user.DataRegistered.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            var result = new LoginGetModel
            {
                Id       = user.Id,
                Email    = user.Email,
                Username = user.Username,
                Token    = tokenHandler.WriteToken(token),
                UserRole = user.User_UserRoles.First().UserRole.Name
            };

            return(result);
        }
        public LoginGetModel Authenticate(string username, string password)
        {
            var user = context.Users
                       //.Include(u => u.UserUserRoles)
                       //.ThenInclude(uur => uur.UserRole)
                       .SingleOrDefault(x => x.Username == username &&
                                        x.Password == ComputeSha256Hash(password));

            string userRoleName = userUserRolesService.GetUserRoleNameById(user.Id);

            // return null if user not found
            if (user == null)
            {
                return(null);
            }

            // authentication successful so generate jwt token
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Username.ToString()),
                    new Claim(ClaimTypes.Role, userRoleName.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token  = tokenHandler.CreateToken(tokenDescriptor);
            var result = new LoginGetModel
            {
                Id       = user.Id,
                Email    = user.Email,
                Username = user.Username,
                Token    = tokenHandler.WriteToken(token),
                //UserRole = user.UserUserRoles.First().UserRole.Name
                UserRole = userRoleName.ToString()
            };

            return(result);
        }