рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХреБрдХреАрдЬрд╝ рдЕрд╡рд░реБрджреНрдз рд╣реИрдВ

рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдХреБрдХреАрдЬрд╝ рдХреА рд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдлреНрд░реЗрдо рд╕реЗ рд╡рд░реНрддрдорд╛рди рдбреЛрдореЗрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдбреЛрдореЗрди)ред рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ (hi, Apple) рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбреЗрд╡рд▓рдкрд░ рдХреБрдХреАрдЬрд╝ рдпрд╛ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, VKontakte рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред


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

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, VKontakte API рдореЗрдВ VK рд╕рд░реНрд╡рд░ (рдХреБрдВрдЬреА-рдореВрд▓реНрдп рд╕рдВрдЧреНрд░рд╣рдг) рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ ред рд╣рдо рдХреЗрд╡рд▓ рд╡рд╣рд╛рдВ рд╕реЗ рдбреЗрдЯрд╛ рд▓рд┐рдЦ тАЛтАЛрдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

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

var data = 'abcde'; //  ,       document.cookie = "userdata="+data+"; path=/; expires=Tue, 31 Dec 2013 23:59:59 GMT"; //         //     //        VK.api('storage.set', { key: 'userdata', value: data }, function(response) { //     ,   GET-   window.location = "/page_for_logined_users?userdata="+data; }); 

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рд╕реА рдРрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╣рд╛рдВ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдпрд╣ рдореБрдЦреНрдп рдкреГрд╖реНрда рд╣реИ рдЬреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдбреЗрдЯрд╛ GET рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ VC рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд░рд╣реЗрдЧрд╛ред рдмреЗрд╢рдХ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ ;-)ред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ "рдкреНрд░рдердо рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз" рдлрд╝реАрд▓реНрдб рднрд░рдирд╛ рд╣реЛрдЧрд╛:



 method=storage.get&key=userdata&format=json&v=3.0 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, VKontakte, рдЬрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ GET рдкреИрд░рд╛рдореАрдЯрд░ api_result рдкрд╛рд╕ рдХрд░реЗрдЧрд╛ - рдЗрд╕рдореЗрдВ рд╣рдорд╛рд░реА рдХреБрдХреА рдХреЗ рд╕рд╛рде JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдЧреАрдирдХреНрд╕ рдореЗрдВ рдХреБрдХреАрдЬрд╝ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдкреНрд░рд╛рд░реВрдк рдХреЛ xml рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ):

 if ($arg_api_result ~ "%3Cresponse%3E(.*)%3C%2Fresponse%3E") { set $userdata $1; rewrite ^ /page_for_logined_users?userdata=$userdata? redirect; } 

рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреА рдУрд░, рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $userdata = (isset($_COOKIE['userdata'])) ? $_COOKIE['userdata'] : (isset($_GET['userdata'])) ? $_GET['userdata'] : false; 

рдФрд░ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдзреНрд╡рдирд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрджрд┐ рдирдЧреАрдиреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рддреЛ рдпрд╣ api_result рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛:
 if (isset($_GET['api_result'])) { $data = json_decode($_GET['api_result'], 1); $userdata = (!empty($data['response'])) ? $data['response'] : false; } 


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

рддреЛ, рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ nginx (рдпрд╛ Apache) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 #    if ($http_cookie ~ "userdata") { set $token $cookie_userdata; set $gotohtml "1"; } #     API if ($arg_api_result ~ "%3Cresponse%3E(.*)%3C%2Fresponse%3E") { set $token $1; set $gotohtml "1"; } #     (http://example.com/) if ($request_uri != /$is_args$args) { set $gotohtml ""; } #      if ($gotohtml ~ 1) { rewrite ^ /index.html#$token? redirect; } 

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╡рд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 var token = window.location.hash.substring(1); 

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

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


All Articles