void ValidateRequest(SteamAccountRequest request, User user)
        {
            bool isTokenValid = requestHmacEncoder.IsTokenValid(request.HmacToken, request, user.SharedSecretKey);

            if (!isTokenValid)
            {
                throw new AuthenticationException("The provided HMAC token is not valid");
            }
        }
        public SteamAccountResponse GetAccount(SteamAccountRequest request)
        {
            User user = userRepository.Get(request.Username).ToServiceModel();

            ValidateRequest(request, user);

            SteamAccount         assignedAccount = GetAssignedAccount(user, request.GiveawaysProvider);
            SteamAccountResponse response        = CreateResponse(user, assignedAccount);

            return(response);
        }
Пример #3
0
        public ActionResult <SteamAccountResponse> GetAccount(
            string username,
            [FromQuery] string gaProvider,
            [FromQuery] string hmac)
        {
            try
            {
                SteamAccountRequest request = new SteamAccountRequest
                {
                    Username          = username,
                    GiveawaysProvider = gaProvider,
                    HmacToken         = hmac
                };

                return(service.GetAccount(request));
            }
            catch (Exception ex)
            {
                ErrorResponse response = new ErrorResponse(ex);
                return(BadRequest(response));
            }
        }