πŸ‘‰ АутСнтификация Ρ‡Π΅Ρ€Π΅Π· Одноклассники

ΠŸΠΎΡ‡Π΅ΠΌΡƒ oauth, Π° Π½Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Β«Π²ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π·Β»?

НСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Если вас ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° β€” Ρ‚ΠΎ Π΅Π³ΠΎ Π²ΠΎΡ‚ΠΊΠ½ΡƒΡ‚ΡŒ Π² ΠΊΠΎΠ΄ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ β€” ΠΌΠΎΠΆΠ΅Ρ‚Π΅ дальшС Π½Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ oauth, Π° Π½Π΅ openid?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ OpenID практичСски бСсполСзСн для Ρ‚Π΅Ρ… Ρ†Π΅Π»Π΅ΠΉ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½. Π­Ρ‚ΠΎ сугубо ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ опираСтся Π½Π΅ Π½Π° пустоС мСсто.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, OpenID ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² основном Β«Π³ΠΈΠΊΠΈΒ», ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ высок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΈΡ… сайты (Π·Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, разумССтся πŸ™‚ ) ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ OpenID Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, Π½Π°Π΄ΠΎ β€” Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ.

Π—Π°ΠΉΡ‚ΠΈ Π½Π° OpenID сСрвСр ΠΈ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ, довольно Π½Π΅Π²Ρ€Π°Π·ΡƒΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π½Π°Π±ΠΎΡ€ символов. ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, нСсмотря Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ (для простого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) Π½Π°Π΄ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ случаС, Ссли Π½Π° Π³Π»Π°Π·Π° попадСтся знакомая ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

image

. Ну ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°Π·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ это Π΄Π΅Π»Π°Ρ‚ΡŒ? А с OAuth всС Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ β€” Π²ΠΈΠ΄ΠΈΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅Β», Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚, и… ΡƒΠΆΠ΅ Π½Π° сайтС с ΠΏΡ€Π°Π²Π°ΠΌΠΈ зарСгистрированного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Β«Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΡ‰Π΅Β», β€” Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» классик, β€” Β«ΠΈ люди ΠΊ Π²Π°ΠΌ потянутся». Как Π² Π²ΠΎΠ΄Ρƒ глядСл.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, возмоТности OAuth Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‚ΡΡ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Π² процСссС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠΊΠ΅Π½, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для дальнСйшСй ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ возмоТностСй социалки Π² свой рСсурс β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/написаниС постов, доступ ΠΊ Ρ„Ρ€Π΅Π½Π΄Π»Π΅Π½Ρ‚Π΅ ΠΈ стСнС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, OpenID Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ спамСры ΠΈ Ρ…Π°ΠΊΠ΅Ρ€Ρ‹. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ рСализация OpenID Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° рСсурсС дСлаСтся Π±Π΅Π· особого внимания ΠΊ извСстным Π΅Π³ΠΎ уязвимостям β€” ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ описанию ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° OpenID-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π΅ ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСизвСстно ΠΊΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° написанной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠŸΠΎΡ…ΠΎΠΆΠ΅Π΅:  ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²Π΅Π±-сайта ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Zabbix - osBSD

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сайты Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ со входящих ΠΏΠΎ OpenID Π²Π²ΠΎΠ΄Π° ΠΊΠ°ΠΏΡ‡ΠΈ. И Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ свой OpenID-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ любой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΏΠ°ΠΌΠΈΡ‚ΡŒ Π΄ΠΎΠ²Π΅Ρ€Ρ‡ΠΈΠ²Ρ‹ΠΉ сайт автоматичСски сгСнСрСнными ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, OpenID аутСнтификация, Π² сущности, Π½Π΅ Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Она ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ лишь, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ зарСгистрирован Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· OpenID-сСрвСров β€” ΠΈ всС. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ (email, имя, возраст) ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ, Π½ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.

МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅ΠΉ OpenID, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ OpenID-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΠΌ ΠΆΠ΅ социалкам). Но смысл, Ссли ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΈΠ· Π½ΠΈΡ… (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π–Π–, Π½ΠΎ ΠΎΠ½ ΠΈ ΠΏΠΎ OpenID Ρ€ΠΎΠ²Π½Ρ‹ΠΌ счСтом Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ расскаТСт ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅)

Google

1. ИдСм

. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ API access Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Create an OAuth2 client IDΒ».

image

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ client_id(Client ID) ΠΈ secret_key(Client Secret).

image

2. Код ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄Π°:

Авторизация Π½Π° сайт одноклассники Ρ‡Π΅Ρ€Π΅Π· curl (php) Π² ΠΎΠ±Ρ…ΠΎΠ΄ api |

ΠœΠΎΠΆΠ΅Ρ‚ понадобится Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ прокси сСрвиса ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ для Ρ‡Π΅Π³ΠΎ πŸ™‚


$user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' .
           'Gecko/20221203 Firefox/3.6.13 ( .NET CLR 3.5.30729)';

$login = 'Π»ΠΎΠ³ΠΈΠ½'; 
$password = 'ΠΏΠ°Ρ€ΠΎΠ»ΡŒ';
$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, 'http://www.odnoklassniki.ru/dk?cmd=AnonymLogin&st.cmd=anonymLogin&tkn=941');

$post = array(
           'st.redirect' => '',
           'st.posted' => 'set',
           'st.email' => $login,
           'st.password' => $password,
           'st.screenSize' => '',
           'st.browserSize' => '',
                       'st.flashVer' => ''
       );

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$answer = curl_exec($ch);

// Π² ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π³Π»Π°Π²Π½ΡƒΡŽ страницу
echo $answer;

curl_close($ch);

Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° одноклассниках создано!

Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ email ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ id прилоТСния (ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈΠ· письма) ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ с описаниСм кСйса ΠΈΡ… использования Π½Π° адрСс

Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅

1. ИдСм

. Π’ΠΈΠΏ β€” Β«Π’Π΅Π±-сайт». Π’Π²ΠΎΠ΄ΠΈΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈ адрСс сайта. На страницС настроСк ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ client_id (ID прилоТСния) ΠΈ secret_key (Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡).

image

2. Π’Ρ‚Ρ‹ΠΊΠ°Π΅ΠΌ Π² ΠΊΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²ΠΈΠ΄Π°

ГСнСрация ссылки для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ok.php Π² ΠΏΠ°ΠΏΠΊΠ΅Β social_login ΠΈ записываСм Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄:

Как Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ одноклассников?

ΠšΠ»ΡŽΡ‡ доступа (

access_token

) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π° страницу Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, послС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ· адрСсной строки Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API.

Π’ΠΎΡ‚ Π½Π° этой страницС описан вСсь процСсс.

1. НСобходимо ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ адрСс для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС шаблона (Π² ΠΎΠ΄Π½Ρƒ строку, я Ρ€Π°Π·Π±ΠΈΠ» Π½Π° нСсколько, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π»Π΅Π·Π»ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ экран):

https://connect.ok.ru/oauth/authorize?client_id={clientId}&scope={scope}&
response_type=token&redirect_uri={redirectUri}&
layout={layout}&state={state}

response_type=token

, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСр Одноклассники Π²Π΅Ρ€Π½ΡƒΠ»

access_token

Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… (

hash

) страницы Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°.

ВмСсто {clientId} Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ своСго прилоТСния.

{scope} – ΠΏΡ€Π°Π²Π° доступа, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ: VALUABLE_ACCESS;PHOTO_CONTENT, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ профиля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

{redirectUri} – страница Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ΄ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠ΄ JavaScript), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚ ΠΈΠ· адрСса ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ доступа, Π½Ρƒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ссли Π² процСссС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ какая-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ошибка ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ откаТСтся Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

{layout} – Ρ‚ΠΈΠΏ ΠΎΠΊΠ½Π°, скорСС всСго ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ m – модальноС ΠΎΠΊΠ½ΠΎ, ΠΈΠ»ΠΈ a – ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅.

{state} – ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ любоС своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² исходном Π²ΠΈΠ΄Π΅ Π½Π° страницу Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ собствСнного ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π»ΠΈΠ±ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° локального ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ собствСнный (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ) ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ адрСс страницы Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ (Π² ΠΎΠ΄Π½Ρƒ строку):

https://connect.ok.ru/oauth/authorize?client_id=000000000&
scope=VALUABLE_ACCESS;PHOTO_CONTENT&response_type=token&
redirect_uri=https://localhost/auth_result.html&layout=m

На локальном сСрвСрС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ страницу

https://localhost/auth_result.html

с ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (см. ΠΏ2).

2. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ страницу Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° (redirect_uri) ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ извлСчСния ΠΊΠ»ΡŽΡ‡Π° доступа ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок.

ΠŸΡ€ΠΈ клиСнтской Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (response_type=token), сСрвСр Одноклассники Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚Π° Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (hash) Π² URL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² свойствС window.location.hash:

<script>
  alert(window.location.hash);
  // Π±Π΅Ρ€Π΅ΠΌ hash ΠΈΠ· url ΠΈ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π° массив ΠΏΠΎ символу &
  var params = window.location.hash.substr(1).split('&');
  // ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ массив
  for (var i = 0; i < params.length; i  )
  {
    // Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массив Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ массив ΠΏΠΎ Π·Π½Π°ΠΊΡƒ =
    var p = params[i].split('=');
    // Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° элСмСнта ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
    // провСряСм имя ΠΊΠ»ΡŽΡ‡Π°
    if (p[0] == 'access_token')
    {
      // ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
      alert('Нашли ΠΊΠ»ΡŽΡ‡ доступа: '   p[1]); 
    }
  }
</script>

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Если ΠΊΠΎΠΌΡƒ интСрСсны всС подробности, Ρ‚ΠΎ см. ссылки Π²Ρ‹ΡˆΠ΅. А Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ β€” Ρ‚Π°ΠΊ:

Одноклассники

1. РСгистрируСмся ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ

. ИдСм

ΠΈ заполняСм заявку Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ OAuth доступа. Н-Π΄Π°. Заявка, ΠΏΠΎΡ…ΠΎΠΆΠ΅, обрабатываСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Если ΠΎΡ‚Π²Π΅Ρ‚Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ суток Π½Π΅Ρ‚, ΠΏΠΈΠ½Π°Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ адрСсу. «Одноклассники», Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ скаТСшь…

2. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ письмо с инструкциями ΠΈ, слСдуя ΠΈΠΌ, заполняСм Ρ„ΠΎΡ€ΠΌΡƒ.

image


ВсС Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ поля ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ заполнСнию. НаТимаСм Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ письмо Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π΅ΠΌΠ°ΠΉΠ», содСрТащСС client_id(Application ID), public_key(ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ прилоТСния) ΠΈ secret_key(Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ прилоТСния)

3. Код ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄Π°:

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

РазумССтся, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°Π΄ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² соцсСти, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, Π½Ρƒ ΠΈ всё Ρ‚Π°ΠΊΠΎΠ΅. НС Ρ‚ΠΎΡ€ΠΎΠΏΠΈΡ‚ΡŒΡΡ. НСкоторыС сСрвСра Π½Π΅ сразу ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ запросы ΠΎΡ‚ свСТСзарСгистрированных OAuth-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π—Π΄Π΅ΡΡŒ я расписал Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок β€” Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ стоит.

Π’Π°ΠΊΠΆΠ΅ я практичСски Π½Π΅ ΡƒΠ΄Π΅Π»ΠΈΠ» внимания аспСктам бСзопасности β€” это Ρ‚Π΅ΠΌΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² callback-url для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ β€” это стоит Π΄Π΅Π»Π°Ρ‚ΡŒ (Основной callback адрСс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈΠ½Π°Ρ‡Π΅ сСрвСр Π½Π΅ пропустит запрос.

РСгистрация Π½ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС. Π”Π°Π»Π΅Π΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° “ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ oAuth”Β ΠΈ заполняСм Ρ„ΠΎΡ€ΠΌΡƒ.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прилоТСния, ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 128×128. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚Π°ΠΊ ТС Бписок Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… redirect_uri, это список ссылок, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚ Π²ΠΎ врСмя Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ OAuth (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ redirect_uri).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ сообщСниС ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ содании прилоТСния.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ письмо ΠΎΡ‚ Одноклассников, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ:

Π¨Π°Π³ 2. гСнСрация ссылки для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ссылки Π½Π°ΠΌ потрСбуСтся адрСс Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

Π¨Π°Π³ 3. ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°

ΠΠ°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΊ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ code. Он Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ доступа, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ, Π² дальнСйшСм, ΠΌΡ‹ достанСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, снова сформируСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для этого запроса. Нам потрСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: `code` – url ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠΉ ΠΎΡ‚ одноклассников; `redirect_uri` – страница, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ; `grand_type`, Ρ€Π°Π²Π½Ρ‹ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ “authorization_code” – ΠΊΠΎΠ΄ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ; `client_id` – id прилоТСния; `client_secret` – сСкрСтный ΠΊΠ»ΡŽΡ‡:

Π¨Π°Π³ 4. ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ access_token, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запрос ΠΊ Одноклассники API ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ массив с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² послСдствии ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠΌ Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ url строки, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ `подпись` запроса $sign с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Π΄Π²ΡƒΡ… Ρ…ΡΡˆΠ΅ΠΉ md5;

Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ method записываСм Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° API Одноклассников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅; Π”Π°Π»Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ access_token, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (application_key), Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (format) ΠΈ подпись запроса (sig).

Шаг 6. и снова дСло за вами

Π’ΡƒΡ‚ всё, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС. Если Ρƒ нас Π΅ΡΡ‚ΡŒ такая информация, ΠΊΠ°ΠΊ ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² нашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ‚Π°ΠΊΠΈΠΌ ID Π½Π΅ сущСствуСт, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΎΠ½ авторизовался с нашСго сайта Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, ΠΈ ΠΌΡ‹ внСсём Π΅Π³ΠΎ Π² Π±Π°Π·Ρƒ.

ПослС этого, всё Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСссию ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½Π΅Ρ‘ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ нашСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅.

На страницС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы просто удаляСм сСссию с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unset.

ЯндСкс

1. ИдСм

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *