我想在授权控制器中获取用户access_token,以便使用此令牌调用其他API。例如:
[Authorize]
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
var token = //get actual user access_token
var httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:8000");
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
var a = httpClient.GetStringAsync("/api/messages").Result;
}
我试图从HttpContext.User获取,但没有令牌。
我找到了这个解决方案来获得令牌
private readonly IHttpContextAccessor _httpContextAccessor;
public HomeController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public IActionResult Controller()
{
var token = await
_httpContextAccessor.HttpContext.GetTokenAsync("access_token");
}