public async Task Invoke(IDictionary<string, object> environment) { var requestPath = (string) environment["owin.RequestPath"]; if (REQUEST_PATH_USER_INFO == requestPath) { var httpContext = (HttpContext)environment["Microsoft.AspNetCore.Http.HttpContext"]; var accessToken = await httpContext.GetTokenAsync(OpenIdConnectParameterNames.AccessToken); var tendukeClient = TendukeClient.Build(accessToken); var userInfo = await tendukeClient.UserInfoApi.GetUserInfoAsync(); var jsonResponse = JsonConvert.SerializeObject(userInfo); var responseBytes = Encoding.UTF8.GetBytes(jsonResponse); var responseStream = (Stream)environment["owin.ResponseBody"]; var responseHeaders = (IDictionary<string, string[]>)environment["owin.ResponseHeaders"]; responseHeaders["Content-Length"] = new string[] { responseBytes.Length.ToString(CultureInfo.InvariantCulture) }; responseHeaders["Content-Type"] = new string[] { "application/json" }; await responseStream.WriteAsync(responseBytes, 0, responseBytes.Length); } else { await nextFunc(environment); } }
public async Task <UserInfoData> UserInfo() { var tendukeClient = await TendukeClient.BuildAsync(HttpContext); return(await tendukeClient.UserInfoApi.GetUserInfoAsync()); }