Я пытаюсь настроить OAuth в своем приложении для coinbase. У меня возникают проблемы после авторизации в обратном вызове Redirect.
У меня есть настройка приложения .Net-Core, например:
public const string COINBASE_AUTH_ID = "coinbase";
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = COINBASE_AUTH_ID;
})
.AddCookie()
.AddOAuth(COINBASE_AUTH_ID, options =>
{
options.ClientId = Configuration["Coinbase:ClientId"];
options.ClientSecret = Configuration["Coinbase:ClientSecret"];
options.CallbackPath = new PathString("/signin-coinbase");
options.AuthorizationEndpoint = "https://www.coinbase.com/oauth/authorize";
options.TokenEndpoint = "http://www.coinbase.com/oauth/token";
options.SaveTokens = true;
//...
После того, как я нажимаю кнопку авторизации, меня перенаправляют на мой URL-адрес обратного вызова: localhost/signin-coinbase, и я получаю сообщение об ошибке:
Исключение: сбой конечной точки токена OAuth: Статус: NotFound; Заголовки: Cache-Control: без хранения, с обязательной повторной проверкой, без кэша, частный
в разделе тела ошибки есть сообщение:
Текст: неверный запрос. Вместо запроса GET вы должны делать POST с допустимыми параметрами POST. Для получения дополнительной информации см. https://developers.coinbase.com/docs/wallet/coinbase-connect;
ИЗМЕНИТЬ Эта ошибка возникает в Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler
Я предполагаю, что причина в том, что обработчик аутентификации отправляет запрос на получение API /oauth/token
, но он должен публиковать сообщение. Есть идеи?
Должен ли я попробовать использовать Oidc?