Проблема конкретно с версией v2. v1 работает корректно но подключиться с второй версии не получается. Не можем получить первый код авторизации. Все вроде по документации, хотя она крайне кривая. Скину код на Python. Кто может подскажите. Ошибка error_description":"ESIA-007053: OAuthErrorEnum.clientSecretWrong
def sign_params_for_v2_by_csptest(client_secret_raw):
"""
:param client_secret_raw: Сформированный для подписания файл
:return:
"""
thumbprint = ""
tmp_dir = tempfile.gettempdir()
source_file = tempfile.NamedTemporaryFile(mode='w', delete=False, dir=tmp_dir)
source_file.write(client_secret_raw)
source_file.close()
source_path = source_file.name
destination_path = source_path + ".sig"
cmd = (f'/opt/cprocsp/bin/amd64/csptest -keys -sign GOST12_256 -cont "имя контейнера" -keytype exchange -in {source_path} -out {destination_path}')
os.system(cmd)
signed_message = open(destination_path, 'rb').read()
os.unlink(source_path)
os.unlink(destination_path)
"""
Возвращает base64url подписанное значение
"""
return base64.urlsafe_b64encode(signed_message).decode('utf-8')
TIMESTAMP = get_timestamp()
CLIENT_ID = "имя"
SCOPE = "openid"
SCOPE_ORG = "org_inn"
REDIRECT_URI = "урл"
SERVICE_URL = "https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v2/ac"
STATE = str(uuid.uuid4())
#Формируем client для подписания
client_secret_raw = (
CLIENT_ID +
SCOPE.replace(" ", "") +
SCOPE_ORG +
TIMESTAMP +
STATE +
REDIRECT_URI
)
client_secret = sign_params_for_v2_by_csptest(client_secret_raw)
client_hash = "hash через calc_cert_hash_unix"
params_url = {
"client_id": CLIENT_ID,
"scope": SCOPE,
"scope_org": SCOPE_ORG,
"timestamp": TIMESTAMP,
"state": STATE,
"redirect_uri": REDIRECT_URI,
"client_secret": client_secret,
"response_type": "code",
"access_type": "offline",
"client_certificate_hash": client_hash,
}
params = urlencode(sorted(params_url.items()))
url = f"{SERVICE_URL}?{params}"
print("URL:", url)