ΠΠ΄ΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (ΠΠ‘ΠΠ) OpenId
, (*1)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ "ΠΠΎΡΡΡΠ»ΡΠ³ΠΈ"., (*2)
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!
ΠΠΎΠ»ΡΡΠΈΠ² ΡΠΎΠΊΠ΅Π½ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΠ΅ API Π·Π°ΠΏΡΠΎΡΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² API, Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°., (*3)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ composer:, (*4)
composer require --prefer-dist fr05t1k/esia
ΠΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² composer.json, (*5)
"fr05t1k/esia" : "^2.0"
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, (*6)
'INSP03211',
'redirectUrl' => 'http://my-site.com/response.php',
'portalUrl' => 'https://esia-portal1.test.gosuslugi.ru/',
'scope' => ['fullname', 'birthdate'],
]);
$esia = new \Esia\OpenId($config);
$esia->setSigner(new \Esia\Signer\SignerPKCS7(
'my-site.com.pem',
'my-site.com.pem',
'password',
'/tmp'
));
?>
<a href="<?=$esia->buildUrl()?>">ΠΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡΠ°Π» Π³ΠΎΡΡΡΠ»ΡΠ³ΠΈ</a>
ΠΠΎΡΠ»Π΅ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠ° Π½Π° Π²Π°Ρ redirectUrl Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π² $_GET['code'] ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π°, (*7)
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅, (*8)
$esia = new \Esia\OpenId($config);
// ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ oid
$token = $esia->getToken($_GET['code']);
$personInfo = $esia->getPersonInfo();
$addressInfo = $esia->getAddressInfo();
$contactInfo = $esia->getContactInfo();
$documentInfo = $esia->getDocInfo();
ΠΠΎΠ½ΡΠΈΠ³
clientId - ID Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ., (*9)
redirectUrl - URL ΠΊΡΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ ΠΎΡΠ²Π΅Ρ Ρ ΠΊΠΎΠ΄ΠΎΠΌ., (*10)
portalUrl - ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: https://esia-portal1.test.gosuslugi.ru/. ΠΠΎΠΌΠ΅Π½ ΠΏΠΎΡΡΠ°Π»Π° Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΌΠ΅Π½)., (*11)
codeUrlPath - ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: aas/oauth2/ac. URL Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°., (*12)
tokenUrlPath - ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: aas/oauth2/te. URL Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°., (*13)
scope - ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: fullname birthdate gender email mobile id_doc snils inn. ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠ°Π²Π° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ., (*14)
privateKeyPath - ΠΏΡΡΡ Π΄ΠΎ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°., (*15)
privateKeyPassword - ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°., (*16)
certPath - ΠΏΡΡΡ Π΄ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°., (*17)
tmpPath - ΠΏΡΡΡ Π΄ΠΎ Π΄Π΅ΡΠΈΠΊΡΠΎΡΠΈΠΈ Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ (Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ)., (*18)
Π’ΠΎΠΊΠ΅Π½ ΠΈ oid
Π’ΠΎΠΊΠ΅Π½ - jwt ΡΠΎΠΊΠ΅Π½ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΎΡ ΠΠ‘ΠΠ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, (*19)
oid - ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠΎΠΊΠ΅Π½Π°, (*20)
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ oid?
ΠΡΠ»ΠΈ 2 ΡΠΏΠΎΡΠΎΠ±Π°:
1. oid ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² jwt ΡΠΎΠΊΠ΅Π½Π΅, ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π² Π΅Π³ΠΎ
2. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° oid ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π² config ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ, (*21)
$esia->getConfig()->getOid();
ΠΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π’ΠΎΠΊΠ΅Π½Π°
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΎΠΊΠ΅Π½ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅, (*22)
$config->setToken($jwt);
$config->setOid($oid);