Я пытаюсь получить токен доступа авторизованных пользователей из HttpContext в моем API. Я использую .Net-Core 2.1:
[HttpGet]
public async Task<bool> Test()
{
var token = await HttpContext.GetTokenAsync("access_token");
return true;
}
Редактировать
Я использую менеджер подписи, чтобы показать провайдеров аутентификации:
SignInManager.GetExternalAuthenticationSchemesAsync()
И в обратном вызове внешнего входа я сохраняю Мои токены с менеджером входа следующим образом:
var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false, bypassTwoFactor: true);
if (result.Succeeded)
{
await _signInManager.UpdateExternalAuthenticationTokensAsync(info);
_logger.LogInformation("User logged in with {Name} provider.", info.LoginProvider);
return RedirectToLocal(returnUrl);
}
Конфигурация аутентификации настроена так:
services.AddAuthentication(COOKIE_AUTH)
.AddCookie(options => options.ExpireTimeSpan = TimeSpan.FromMinutes(60))
.AddCoinbase(options => {
options.SendLimitAmount = 1;
options.SendLimitCurrency = "USD";
options.SendLimitPeriod = SendLimitPeriod.day;
options.ClientId = Configuration["Coinbase:ClientId"];
options.ClientSecret = Configuration["Coinbase:ClientSecret"];
COINBASE_SCOPES.ForEach(scope => options.Scope.Add(scope));
options.SaveTokens = true;
options.ClaimActions.MapJsonKey("urn:coinbase:avatar", "avatar_url");
});
Когда даже я пытаюсь получить токен доступа, я получаю ноль.Однако я вижу, что я вошел в систему с HttpContext.User.
Как получить токен доступа с HttpContext?