public HttpResponseMessage Negotiate([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "1.0/negotiate")] HttpRequestMessage req) { req.Headers.TryGetValues(HeaderNames.Authorization, out IEnumerable <string> authorizationEnumerable); if (authorizationEnumerable == null) { return(ResponseBuilderHelper.BuildResponse(HttpStatusCode.Unauthorized)); } var authorizationList = authorizationEnumerable.ToList(); if (authorizationList.Count == 0) { return(ResponseBuilderHelper.BuildResponse(HttpStatusCode.Unauthorized)); } var(isValidToken, claims) = _jwtProvider.ValidateToken(authorizationList[0], Settings.AuthorizationKey); if (!isValidToken) { return(ResponseBuilderHelper.BuildResponse(HttpStatusCode.Unauthorized)); } claims.TryGetValue("userID", out var userID); if (string.IsNullOrEmpty(userID)) { return(ResponseBuilderHelper.BuildResponse(HttpStatusCode.BadRequest, "Missing parameter: userID")); } return(ResponseBuilderHelper.BuildResponse(HttpStatusCode.OK, new NegotiateActivityResponse() { UserID = userID })); }
public HttpResponseMessage Authenticate( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "1.0/authenticate")] HttpRequestMessage req) { return(ResponseBuilderHelper.BuildResponse(System.Net.HttpStatusCode.OK, new AuthenticateActivityResponse() { Token = _jwtProvider.GenerateToken(Settings.AuthorizationKey) })); }
private async Task <(HttpResponseMessage, object)> ValidateRequestAsync(HttpRequestMessage req) { try { string content = await req.Content.ReadAsStringAsync(); var requestData = JsonConvert.DeserializeObject <CreateActivityRequest>(content); if (requestData == null) { return(ResponseBuilderHelper.BuildResponse(HttpStatusCode.BadRequest, "There was an error processing the request"), default);