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()); }
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); } }
public async Task <ForgeToken> GetViewerAuthorization() { if (IsViewerAuthorized()) { return(viewerToken); } else { viewerToken = await Authorize("data:read bucket:read"); return(viewerToken); } }
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); }