public string GetTokenHeader()
        {
            if (Token.IsValid())
            {
                return(Token.GetHeader());
            }

            var client = new RestClient(Url);

            RestRequest request = new RestRequest("authentication/v1/authenticate", Method.POST);

            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("client_id", Key);
            request.AddParameter("client_secret", Secret);
            request.AddParameter("grant_type", "client_credentials");
            request.AddParameter("scope", AuthScope);

            IRestResponse response = client.Execute(request);

            Token = JsonConvert.DeserializeObject <ForgeToken>(response.Content);

            if (Token == null)
            {
                Console.WriteLine("Call to get an Access token failed. Please check the enviroment variables FORGE_CLIENT_ID and/or FORGE_CLIENT_SECRET and also the configuration files for a proper end points.");
                return("");
            }

            if (!Token.IsValid())
            {
                Console.WriteLine("Access token is not valid.\nThat usually means that enviroment variables FORGE_CLIENT_ID and/or FORGE_CLIENT_SECRET are not set properly.");
            }

            return(Token.GetHeader());
        }
Exemple #2
0
        public async Task <ForgeToken> GetFullAuthorization()
        {
            if (IsFullAuthorized())
            {
                return(fullToken);
            }
            else
            {
                fullToken = await Authorize("data:search data:read bucket:read bucket:create data:write bucket:delete account:read account:write");

                return(fullToken);
            }
        }
Exemple #3
0
        public async Task <ForgeToken> GetViewerAuthorization()
        {
            if (IsViewerAuthorized())
            {
                return(viewerToken);
            }
            else
            {
                viewerToken = await Authorize("data:read bucket:read");

                return(viewerToken);
            }
        }
Exemple #4
0
        private async Task <ForgeToken> Authorize(string scope)
        {
            var encodedScope = WebUtility.UrlEncode(scope);
            var client       = new RestClient("https://developer.api.autodesk.com/authentication/v1/authenticate");
            var request      = new RestRequest(Method.POST);

            request.Timeout       = 30000;
            request.RequestFormat = DataFormat.Json;
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("undefined",
                                 $"client_id={this.config["Forge:ClientId"]}" +
                                 $"&client_secret={this.config["Forge:ClientSecret"]}" +
                                 $"&grant_type=client_credentials" +
                                 $"&scope={encodedScope}",
                                 ParameterType.RequestBody);
            IRestResponse <ForgeToken> response = await client.ExecuteTaskAsync <ForgeToken>(request);

            ForgeToken authentication = response.Data;

            authentication.Expiration = DateTime.UtcNow.AddSeconds(authentication.ExpiresIn);
            return(response.Data);
        }