Единая система идентификации и аутентификации (ЕСИА) OpenId
Описание
Компонент для авторизации на портале "Госуслуги", (*1)
Установка
При помощи composer:, (*2)
composer require --prefer-dist v-ghost2000/esia
Или добавьте в composer.json, (*3)
"v-ghost/esia" : "dev-master"
Как использовать
Пример получения ссылки для авторизации, (*4)
'INSP03211',
'redirectUrl' => 'http://my-site.com/response.php',
'portalUrl' => 'https://esia-portal1.test.gosuslugi.ru/',
'privateKeyPath' => 'my-site.com.pem',
'privateKeyPassword' => 'my-site.com',
'certPath' => 'my-site.com.pem',
'tmpPath' => 'tmp',
];
$esia = new \esia\OpenId($config);
?>
<a href="<?=$esia->getUrl()?>">Войти через портал госуслуги</a>
После редиректа на ваш redirectUrl вы получите в $_GET['code'] код для получения токена, (*5)
Пример получения токена и информации о пользователе, (*6)
$esia = new \esia\OpenId($config);
$esia->getToken($_GET['code']);
$personInfo = $esia->getPersonInfo();
$addressInfo = $esia->getAddressInfo();
$contactInfo = $esia->getContactInfo();
Конфиг
clientId - ID вашего приложения., (*7)
redirectUrl - URL куда будет перенаправлен ответ с кодом., (*8)
portalUrl - по умолчанию: https://esia-portal1.test.gosuslugi.ru/. Домен портала для авторизация (только домен)., (*9)
codeUrl - по умолчанию: aas/oauth2/ac. URL для получения кода., (*10)
tokenUrl - по умолчанию: aas/oauth2/te. URL для получение токена., (*11)
scope - по умолчанию: http://esia.gosuslugi.ru/usr_inf. Запрашиваемые права у пользователя., (*12)
privateKeyPath - путь до приватного ключа., (*13)
privateKeyPassword - пароль от приватного ключа., (*14)
certPath - путь до сертификата., (*15)
tmpPath - путь до дериктории где будет проходить подпись (должна быть доступна для записи)., (*16)
log - callable с одни параметром $message, в который будет передаваться сообщения лога., (*17)