Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (1)
  • Как правильно (и в какой момент авторизации) задать параметризованные scope в ЕСИА?

    @Sinator
    1) Авторизуете пользователя (получаете обратно code по запрошенным скоупам)
    2) Меняете code на access_token
    3) Запрашиваете данные по пользователю используя access_token (получаете список нужных вам организаций)
    4) Создаете еще один запрос через API аналогичный второму пункту и получаем ЕЩЕ ОДИН access_token, но уже для организаций (обратите внимание, что grant_type уже client_credentials, а code и state используется из ответа на первый шаг)
    $arParams = [
        'client_id'     => '*CLIENT_CODE*',
        'code'          => $_GET['code'],
        'grant_type'    => 'client_credentials',
        'state'         => $_GET['state'],
        'scope'         => join(' ', [
            "http://esia.gosuslugi.ru/org_inn?org_oid=*111111111*",
            "http://esia.gosuslugi.ru/org_ogrn?org_oid=*111111111*",
            "http://esia.gosuslugi.ru/org_ctts?org_oid=*111111111*",
            "http://esia.gosuslugi.ru/org_fullname?org_oid=*111111111*",
            "http://esia.gosuslugi.ru/org_type?org_oid=*111111111*",
            "http://esia.gosuslugi.ru/org_inn?org_oid=*222222222*",
            "http://esia.gosuslugi.ru/org_ogrn?org_oid=*222222222*",
            "http://esia.gosuslugi.ru/org_ctts?org_oid=*222222222*",
            "http://esia.gosuslugi.ru/org_fullname?org_oid=*222222222*",
            "http://esia.gosuslugi.ru/org_type?org_oid=*222222222*",
            "http://esia.gosuslugi.ru/org_inn?org_oid=*333333333*",
            "http://esia.gosuslugi.ru/org_ogrn?org_oid=*333333333*",
            "http://esia.gosuslugi.ru/org_ctts?org_oid=*333333333*",
            "http://esia.gosuslugi.ru/org_fullname?org_oid=*333333333*",
            "http://esia.gosuslugi.ru/org_type?org_oid=*333333333*",
        ]),
        'timestamp'     => date('Y.m.d H:i:s O'),
        'token_type'    => 'Bearer',
        'client_secret' => '*CLIENT_SECRET*',
    ];

    5) С полученным новым токеном делаем запрос на получение информации по организации (на каждую свой):
    https://esia-portal1.test.gosuslugi.ru/rs/orgs/222222222/ctts?embed=(contacts.elements)


    Документация у них конечно "дно" =)
    Ответ написан
    5 комментариев