public static Task <HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) { Log(log, $"C# HTTP trigger function processed a request! RequestUri={req.RequestUri}"); var func = new GetACSAccessTokensHandler(req); func.FunctionNotify += (sender, args) => Log(log, args.Message); var functionArgs = new GetACSAccessTokensArgs() { StorageAccount = ConfigurationManager.AppSettings["ConfigurationStorageAccount"], StorageAccountKey = ConfigurationManager.AppSettings["ConfigurationStorageAccountKey"] }; return(Task.FromResult(func.Execute(functionArgs))); }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetACSAccessTokens")] HttpRequestMessage req, TraceWriter log) { Log(log, $"C# HTTP trigger function processed a request! RequestUri={req.RequestUri}"); var func = new GetACSAccessTokensHandler(req); func.FunctionNotify += (sender, args) => Log(log, args.Message); var getAcsAccessTokensFunctionArgs = new GetACSAccessTokensArgs { StorageAccount = ConfigurationManager.AppSettings["ConfigurationStorageAccount"], StorageAccountKey = ConfigurationManager.AppSettings["ConfigurationStorageAccountKey"] }; return(await Task.Run(() => func.Execute(getAcsAccessTokensFunctionArgs))); }
/// <summary> /// Returns application/json containing userAccessToken and appOnlyAccessToken properties for a valid clientId and cacheKey combo or a 404 for invalid input. /// </summary> /// <param name="args">An <see cref="GetACSAccessTokensArgs"/> instance specifying the location of the client configuration in Azure storage.</param> /// <returns>JSON or 404</returns> public HttpResponseMessage Execute(GetACSAccessTokensArgs args) { try { var cacheKey = _queryParams["cacheKey"]; var clientId = _queryParams["clientId"]; var clientConfig = GetConfiguration(clientId); var tokens = GetSecurityTokens(cacheKey, clientId); Uri hostUri = new Uri(tokens.AppWebUrl); var userAccessToken = GetUserAccessToken(cacheKey, tokens, hostUri, clientConfig); var appOnlyAccessToken = ContextUtility.GetAppOnlyAccessToken(clientId, cacheKey); _response.StatusCode = HttpStatusCode.OK; _response.Content = new StringContent($"{{\"userAccessToken\":\"{userAccessToken.AccessToken}\", \"appOnlyAccessToken\":\"{appOnlyAccessToken}\"}}"); _response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); } catch { _response.StatusCode = HttpStatusCode.NotFound; } return(_response); }