HybridAuth - рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╡реЗрдмрд╕рд╛рдЗрдЯ рдПрдХреАрдХрд░рдг

рдкрд░рд┐рдЪрдп


Php рдкрд░ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░, рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Loginza рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдФрд░ рдЖрд░рд╛рдорджрд╛рдпрдХ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЗрд╕ рдЕрджреНрднреБрдд рд╕реЗрд╡рд╛ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЙрднрд░рдиреЗ рд▓рдЧрд╛, рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ:

  1. Loginza рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдпрд╛ рдЗрд╕реЗ рдордирд╛ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛ рджреЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдИрдореЗрд▓ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ;
  2. рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, VKontakte рдПрдХ рд╕реНрдХреНрд╡рд╛рдпрд░ рдЕрд╡рддрд╛рд░ рд╕рд╣рд┐рдд рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддрд╕реНрд╡реАрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ Loginza рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд╕реЗрд╡рд╛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдФрд░ рдХрд┐рд╕реЗ рджреЗрдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рддреА рд╣реИ;
  3. рдмрд┐рдХреНрд░реА рдХреЗ рдХреНрд╖рдг рд╕реЗ рдпреИрдВрдбреЗрдХреНрд╕ рддрдХ, рдбреАрд╡рд╛рдЬрд╝рд╛ рдорд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛: рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╕реЗрд╡рд╛ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд░реВрдк рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ 1-2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдерд╛ред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдкреИрджрд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдард╛ - рдХрд┐рд╕реА рдиреЗ рднреА рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде "рд╕рдВрд╡рд╛рдж" рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреА рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХреАред рдиреЗрдЯрд╡рд░реНрдХ рд╕реАрдзреЗ, рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реАрд▓реНрдб рдЖрдорддреМрд░ рдкрд░ рднреБрдЧрддрд╛рди рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдкреАрдПрдЪрдкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣рд╛рдЗрдмреНрд░рд┐рдбрде рдкрд░ рдмрд╕ рдЧрдпрд╛ред

HybridAuth


HybridAuth рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ OAuth1, OAuth2 рдФрд░ OpenID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Google, Facebook, Twitter рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ VKontakte рдЬреИрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 2.0.11 рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 2.1.0 рд╣реИ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЧрд┐рдЯрдм рдХреЗ рд▓рд┐рдВрдХ рд╣реИрдВред рдпрд╣ рдПрдордЖрдИрдЯреА рдФрд░ рдЬреАрдкреАрдПрд▓ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЯреНрд╡рд┐рдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдЙрджрд╛рд╣рд░рдг examples рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВ, hybridauth/config.php , install.php рдореЗрдВ рд╕реЗрд╡рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рднреА рд╡рд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ:



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдВрдбрдкреЙрдЗрдВрдЯ URL рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд▓рдЧрдЗрди рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХрд╛ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛, рдпрд╣ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ рд╕рднреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЖрдИрдбреА рдФрд░ рдЧреБрдкреНрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рднреА рд╣реИрдВ:



рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдФрд░ рд╕реЗрд╡ рдХрд░реЗрдВрдЧреЗред рдЕрдм рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рд╕рд╛рдЗрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ test.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:

 <?php session_start(); $config = dirname(__FILE__) . '/hybridauth/config.php'; require_once( "hybridauth/Hybrid/Auth.php" ); if( isset( $_GET["login"] ) ) { try { $hybridauth = new Hybrid_Auth( $config ); $adapter = $hybridauth->authenticate( "twitter" ); $user_profile = $adapter->getUserProfile(); } catch( Exception $e ) { die( "<b>got an error!</b> " . $e->getMessage() ); } } if( ! isset( $user_profile ) ) { ?> <p>   .</p> <h2><a href ="test.php?login=1"></a></h2> <?php } else { ?> <fieldset> <legend>twitter </legend> <b> <?php echo $user_profile->displayName; ?></b> <hr /> <b>Hybridauth access tokens for twitter:</b> <pre><?php print_r( $adapter->getAccessToken() ); ?></pre> </fieldset> <?php } ?> 

рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ:
  1. рдЬреАрдИрдЯреА рд▓реЙрдЧрд┐рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ; рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдкреЗрд╢рдХрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрда рдЦреЛрд▓рддрд╛ рд╣реИ;
  2. рд▓рд┐рдВрдХ mysite.ru/twitter.php?login=1 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рдЗрдмреНрд░рд┐рдб_рдСрде рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рд╡рд┐рдзрд┐ рдЙрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рдкрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
  3. рдлреЗрд╕рдмреБрдХ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдкреЗрд╢рдХрд╢ рдХреЗ рд╕рд╛рде рдЦреБрд▓рддрд╛ рд╣реИ, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣реБрдВрдЪ рджреЗрддрд╛ рд╣реИ, рддреЛ getUserProfile рдкрджреНрдзрддрд┐ рд╣рдореЗрдВ рдЙрд╕рдХрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧреА, рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред

рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ! рдЕрдм, рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ Twitter рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ getUserProfile рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, hybridauth/Hybrid/Providers рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЦреЛрд▓реЗрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рд╣рдореЗрдВ Twitter.php рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо getUserProfile рд╡рд┐рдзрд┐ getUserProfile рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ:

 $this->user->profile->identifier = (property_exists($response,'id'))?$response->id:""; $this->user->profile->displayName = (property_exists($response,'screen_name'))?$response->screen_name:""; $this->user->profile->description = (property_exists($response,'description'))?$response->description:""; $this->user->profile->firstName = (property_exists($response,'name'))?$response->name:""; $this->user->profile->photoURL = (property_exists($response,'profile_image_url'))?$response->profile_image_url:""; $this->user->profile->profileURL = (property_exists($response,'screen_name'))?("http://twitter.com/".$response->screen_name):""; $this->user->profile->webSiteURL = (property_exists($response,'url'))?$response->url:""; $this->user->profile->region = (property_exists($response,'location'))?$response->location:""; 

рдЖрдк рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рднреА рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП, рдЖрдк рди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

Yandex


рдПрдХ рдирдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо hybridauth/Hybrid/Providers/Yandex.php рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо hybridauth/Hybrid/Providers/Yandex.php ред Yandex рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП OAuth2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрдЧреА:

 class Hybrid_Providers_Yandex extends Hybrid_Provider_Model_OAuth2 

OAuth1 рдХреЗ рд▓рд┐рдП, Hybrid_Provider_Model_OAuth1 рдЙрдкрдпреЛрдЧ Hybrid_Provider_Model_OAuth1 , рдФрд░ OpenID рдХреЗ рд▓рд┐рдП, Hybrid_Provider_Model_OpenID ред рдЕрдм рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпреИрдВрдбреЗрдХреНрд╕ рдХреЛ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдИрдбреА рдФрд░ рдЧреБрдкреНрдд рдлрд╝реАрд▓реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ - рдпрд╣рд╛рдВ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдЖрд╡реЗрджрди рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ ред рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо API Login.Yandex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдБ рд╣рдо рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рдлрд╝реАрд▓реНрдб рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдирд╛рдо рдХреЛ рдиреЛрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдбреЗрдЯрд╛ рднрд░рдг рдЙрджрд╛рд╣рд░рдг

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рдЪрд╛рдмрд┐рдпрд╛рдВ рд╣реИрдВ, рдпрд╣ рдЙрдиреНрд╣реЗрдВ hybridauth/config.php рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, hybridauth/config.php рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 "Yandex" => array ( "enabled" => true, "keys" => array ( "id" => "Id ", "secret" => " " ) ), 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдпреИрдВрдбреЗрдХреНрд╕ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ oauth.yandex.ru/authorize oauth.yandex.ru/authorize , рдФрд░ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП oauth.yandex.ru/token oauth.yandex.ru/token рдпрд╣ API Login.Yandex рдХреЗ рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП, API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЦреЛрд▓реЗрдВ рдФрд░ Yandex, рдФрд░ OAuth + Yandex.Login рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди рдвреВрдВрдвреЗрдВ ред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реИ login.yandex.ru/info login.yandex.ru/info рдареАрдХ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП, Yandex.php рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рд╢реБрд░реБрдЖрддреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

 $this->api->api_base_url = "https://login.yandex.ru/info"; $this->api->authorize_url = "https://oauth.yandex.ru/authorize"; $this->api->token_url = "https://oauth.yandex.ru/token"; 

рд╣рдо рдпрд╣ рднреА рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдХреЛ oauth_token рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 $this->api->sign_token_name = "oauth_token"; 

рдЕрдм GetProfiles рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдо рдПрдХ рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ:

 $response = $this->api->api( "?format=json" ); 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ $ рдкреНрд░рддрд┐рд╕рд╛рдж рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрд╕реЗ рдЯреНрд╡рд┐рдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд╕рд╣реЗрдЬреЗрдВред

 $this->user->profile->identifier = (property_exists($response,'id'))?$response->id:""; $this->user->profile->firstName = (property_exists($response,'real_name'))?$response->real_name:""; $this->user->profile->displayName = (property_exists($response,'display_name'))?$response->display_name:""; $this->user->profile->photoURL = 'http://upics.yandex.net/'. $this->user->profile->identifier .'/normal'; $this->user->profile->gender = (property_exists($response,'sex'))?$response->sex:""; $this->user->profile->email = (property_exists($response,'default_email'))?$response->default_email:""; $this->user->profile->emailVerified = (property_exists($response,'default_email'))?$response->default_email:""; 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реА:
Yandex.php
 <?php class Hybrid_Providers_Yandex extends Hybrid_Provider_Model_OAuth2 { function initialize() { parent::initialize(); $this->api->api_base_url = "https://login.yandex.ru/info"; $this->api->authorize_url = "https://oauth.yandex.ru/authorize"; $this->api->token_url = "https://oauth.yandex.ru/token"; $this->api->sign_token_name = "oauth_token"; } function getUserProfile() { $response = $this->api->api( "?format=json" ); if ( !isset( $response->id ) ) { throw new Exception( "User profile request failed! {$this->providerId} returned an invalide response.", 6 ); } $this->user->profile->identifier = (property_exists($response,'id'))?$response->id:""; $this->user->profile->firstName = (property_exists($response,'real_name'))?$response->real_name:""; $this->user->profile->displayName = (property_exists($response,'display_name'))?$response->display_name:""; $this->user->profile->photoURL = 'http://upics.yandex.net/'. $this->user->profile->identifier .'/normal'; $this->user->profile->gender = (property_exists($response,'sex'))?$response->sex:""; $this->user->profile->email = (property_exists($response,'default_email'))?$response->default_email:""; $this->user->profile->emailVerified = (property_exists($response,'default_email'))?$response->default_email:""; return $this->user->profile; } } ?> 


рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рдпреИрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдмрджрд▓реЗрдВ:

 $adapter = $hybridauth->authenticate( "yandex" ); 

рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:



рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:



рдпрд╣реА рд╕рдм рд╣реИ, рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдлрд▓ рд░рд╣рд╛ред рдЖрдк рдЙрди рд╢реЗрд╖ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрдиреЗрдХреНрд╢рди, рдирдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╕рд░рд▓ рдЬреЛрдбрд╝ рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЛрдб - рд╡рд╣ рд╕рдм рдЬреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЧрд╛рдпрдм рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХреАрдХрд░рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ CMS рдЬреИрд╕реЗ Yii, Symfony2, Wordpress, Drupal рдФрд░ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ ред

рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ, рд╕рд╛рде рд╣реА рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдкреАрдПрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВред

рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ:

рдЕрдкрдбреЗрдЯ : Yandex рдФрд░ Mail.ru рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг, Odnoklassniki PHP> 5.3.0 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдирд┐рдХрд▓рд╛ред

Source: https://habr.com/ru/post/In149187/


All Articles