OKuth 2.0 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП VK рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреЙрдк-рдЕрдк

рдЗрд╕ рд╕рдордп рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ "рд╕рдВрдкрд░реНрдХ" рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА 2 рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ:

рдкрд╣рд▓рд╛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдлреИрд╢рдиреЗрдмрд▓, рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдФрд░ рдорд╛рдирдХреАрдХреГрдд рд╣реИред

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

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

рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдлреЗрд╕рдмреБрдХ рдХреА рдЕрдкрдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдзрд┐ FB.login рд╣реИред OpenAPI Vkontakte рдореЗрдВ VK.Auth.login рд╣реИред рдФрд░ OAuth 2 "рд╕рдВрдкрд░реНрдХ рдореЗрдВ" рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред

"рдареАрдХ рд╣реИ, рдЪреБрдиреМрддреА рд╕реНрд╡реАрдХрд╛рд░ рдХреА," рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рдХрд╣рд╛ред рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреА рд╡рд┐рдзрд┐ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:
function vk_popup(options)<br>{<br> var <br> screenX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft,<br> screenY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop,<br> outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document .body.clientWidth,<br> outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : ( document .body.clientHeight - 22),<br> width = options.width,<br> height = options.height,<br> left = parseInt(screenX + ((outerWidth - width) / 2), 10),<br> top = parseInt(screenY + ((outerHeight - height) / 2.5), 10),<br> features = (<br> 'width=' + width +<br> ',height=' + height +<br> ',left=' + left +<br> ',top=' + top<br> );<br> return window.open(options.url, 'vk_oauth' , features);<br>}<br><br> function doLogin() {<br> var win;<br> var redirect_uri = 'http://MY_APP/vk_auth/' ;<br> var uri_regex = new RegExp(redirect_uri);<br> var url = 'http://oauth.vkontakte.ru/authorize?client_id=CLIENT_ID&display=popup&redirect_uri=' + redirect_uri;<br> win = vk_popup({<br> width:620,<br> height:370,<br> url:url<br> });<br><br> var watch_timer = setInterval( function () {<br> try {<br> if (uri_regex.test(win.location)) {<br> clearInterval(watch_timer);<br><br> setTimeout( function () {<br> win.close();<br> document .location.reload();<br> }, 500);<br> }<br> } catch (e) {<br><br> }<br> }, 100);<br>} <br><br> * This source code was highlighted with Source Code Highlighter .

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдВрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ OpenAPI рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдЫрд╡рд┐

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

рдЬреАрддрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЛ рд░реИрдк рдХрд░рдирд╛ред рдкреНрд░рдпрд╛рд╕ рдореЗрдВ {} рдХреИрдЪ (e) {} рдкрдХрдбрд╝ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдкреЙрд▓рд┐рд╕реА рдЖрдкрдХреЛ рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╡рд┐рдВрдбреЛ URL рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред

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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

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


All Articles