//获取accessToken
var bearer = httpContext.Request.Headers["Authorization"];
if (!string.IsNullOrWhiteSpace(bearer))
{
var accessToken = bearer.ToString().Replace("Bearer ", "");
//获取用户信息
var client = new HttpClient();
var metaDataResponse = await client.GetDiscoveryDocumentAsync("https://localhost:44310/");
var response = await client.GetUserInfoAsync(new UserInfoRequest
{
Address = metaDataResponse.UserInfoEndpoint,
Token = accessToken
});
if (response.IsError)
{
throw new Exception("Problem while fetching data from the UserInfo endpoint", response.Exception);
}
var subClaim = response.Claims.FirstOrDefault(c => c.Type.Equals("sub"));
user.AddIdentity(new ClaimsIdentity(new List<Claim> { new Claim(subClaim.Type.ToString(), subClaim.Value.ToString()) }));
}