Я пытаюсь пройти аутентификацию с помощью Coinbase Advanced API, используя JWT, подписанный ES256, но продолжаю получать ответ 401 от каждой конечной точки.
Я использую ключ API JSON, созданный на платформе разработчика Coinbase (CDP), и я подтвердил, что:
- Ключ имеет правильные разрешения
- `kid` в заголовке JWT соответствует идентификатору ключа API
- Утверждение `sub` соответствует имени ключа (organizations/.../apiKeys/...)
- Токен подписан с помощью ES256
- Для `aud` установлено значение `https://api.coinbase.com`
- Утверждения `nbf` и `exp` находятся в правильном окне
- HTTP-запрос включает JWT в заголовок `Authorization: Bearer `.
Я также проверил, что генерирую новый JWT для каждого запроса, но ответ всегда:
401 Unauthorized
{"error":"invalid_token"
Вот упрощенный пример того, как я генерирую JWT:
Вот упрощенный пример того, как я генерирую JWT:
```python
import jwt
import json
import time
from pathlib import Path
from cryptography.hazmat.primitives import serialization
# Load JSON API key (Coinbase CDP key)
with open("cdp_api_key.json", "r") as f:
key_data = json.load(f)
# Load EC private key
with open("private_key.pem", "r") as f:
private_key = serialization.load_pem_private_key(
f.read().encode(),
password=None,
)
now = int(time.time())
# JWT payload
payload = {
"sub": key_data["name"],
"iss": key_data["name"],
"nbf": now,
"exp": now + 120,
"aud": "https://api.coinbase.com",
}
# Generate ES256-signed JWT
token = jwt.encode(
payload,
private_key,
algorithm="ES256",
headers={"kid": key_data["id"]},
)
print(token)
Даже при этом запрос по-прежнему возвращает 401.
Even with this, the request still returns 401.
QUESTION:
Is there an additional requirement for Coinbase’s ES256 JWT flow (CDP JSON keys) that isn’t documented, or something subtle that I’m missing?
Подробнее здесь: https://stackoverflow.com/questions/798 ... n-with-a-v
Почему я получаю ошибку 401 от Coinbase Advanced API с использованием ES256 JWT, даже при наличии действующего ключа JSO ⇐ Python
Программы на Python
1765473794
Anonymous
Я пытаюсь пройти аутентификацию с помощью Coinbase Advanced API, используя JWT, подписанный ES256, но продолжаю получать ответ 401 от каждой конечной точки.
Я использую ключ API JSON, созданный на платформе разработчика Coinbase (CDP), и я подтвердил, что:
- Ключ имеет правильные разрешения
- `kid` в заголовке JWT соответствует идентификатору ключа API
- Утверждение `sub` соответствует имени ключа (organizations/.../apiKeys/...)
- Токен подписан с помощью ES256
- Для `aud` установлено значение `https://api.coinbase.com`
- Утверждения `nbf` и `exp` находятся в правильном окне
- HTTP-запрос включает JWT в заголовок `Authorization: Bearer `.
Я также проверил, что генерирую новый JWT для каждого запроса, но ответ всегда:
401 Unauthorized
{"error":"invalid_token"
Вот упрощенный пример того, как я генерирую JWT:
Вот упрощенный пример того, как я генерирую JWT:
```python
import jwt
import json
import time
from pathlib import Path
from cryptography.hazmat.primitives import serialization
# Load JSON API key (Coinbase CDP key)
with open("cdp_api_key.json", "r") as f:
key_data = json.load(f)
# Load EC private key
with open("private_key.pem", "r") as f:
private_key = serialization.load_pem_private_key(
f.read().encode(),
password=None,
)
now = int(time.time())
# JWT payload
payload = {
"sub": key_data["name"],
"iss": key_data["name"],
"nbf": now,
"exp": now + 120,
"aud": "https://api.coinbase.com",
}
# Generate ES256-signed JWT
token = jwt.encode(
payload,
private_key,
algorithm="ES256",
headers={"kid": key_data["id"]},
)
print(token)
Даже при этом запрос по-прежнему возвращает 401.
Even with this, the request still returns 401.
QUESTION:
Is there an additional requirement for Coinbase’s ES256 JWT flow (CDP JSON keys) that isn’t documented, or something subtle that I’m missing?
Подробнее здесь: [url]https://stackoverflow.com/questions/79844218/why-am-i-getting-a-401-from-coinbase-advanced-api-using-es256-jwt-even-with-a-v[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия