RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-700453

supreme1444 вас's questions

Martin Hope
supreme1444 вас
Asked: 2025-03-28 14:06:20 +0000 UTC

通过 ESIA 授权存在问题

  • 5

该问题特定于版本 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)
python
  • 1 个回答
  • 57 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5