होबे और अन्य संसाधनों पर ट्यूटोरियल हैं, हालांकि, उनमें से प्रत्येक ने कुछ तुच्छ बिंदुओं को याद किया है, जिन पर प्रश्न विभिन्न मंचों में देखे जा सकते हैं। चूंकि हाल ही में मुझे कॉन्टैक्ट और Mile.ru के साथ एक साइट के मित्र बनाने के कार्य के साथ सामना करना पड़ा था, मैंने फैसला किया, जबकि मेरी मेमोरी ताज़ा है, अपने छोटे मैनुअल को लाठी के साथ बनाने के लिए, इसलिए, इन सामाजिक नेटवर्क के मूल विजेट का उपयोग करके बोलना।
तो, चलो VKontakte से शुरू करते हैं। हम
साइट के कनेक्शन पृष्ठ पर जाते हैं , भविष्य में कनेक्टेड साइट की सेटिंग आपको
एप्लिकेशन प्रबंधन पृष्ठ पर उपलब्ध होगी, वहां हम एप्लिकेशन आईडी और गुप्त कुंजी का पता लगाएंगे, जो स्वाभाविक रूप से किसी को भी नहीं बताया जा सकता है।
उस पृष्ठ पर जिस पर "लॉग इन वीकेनकट्टे" बटन को सिर पर जोड़ा जाना चाहिए
< script type ="text/javascript" src ="http://userapi.com/js/api/openapi.js?34" ></ script >
और आवेदन को इनिशियलाइज़ करें:
VK.init({apiId: __APP_ID___});
अब आपको विजेट के लिए कॉल के माध्यम से उपयोगकर्ता को एक बटन दिखाने की आवश्यकता है। पैरामीटर के रूप में, लेखक उस तत्व की आईडी लेता है जिसमें विजेट प्रदर्शित करने के लिए, पृष्ठ की चौड़ाई और पता जहां हम पहुंच प्रयास के बाद पुनर्निर्देशित होंगे।
< div id ="vk_auth" ></ div >
< script type ="text/javascript" >
VK.Widgets.Auth( "vk_auth" , {width: "300px" , authUrl: '/vklogin.php?' });
</ script >
उपयोगकर्ता क्या देखेगा:

"लॉग इन के माध्यम से VKontakte" पर क्लिक करने के बाद उपयोगकर्ता प्रपत्र
vkontakte.ru/widget_auth.php?act=a_auth_user&app=__APP_ID_&shsh=d2d47b3c85d1a091a8 के पृष्ठ पर फेंकता है, फिर उस url पर निर्दिष्ट करें जो आपने निर्दिष्ट किया है। निम्नलिखित GET मापदंडों के साथ फेंकता है:
पहला_नाम (पहला नाम), हैश (यह जांचने के लिए कि क्या अनुरोध वास्तव में संपर्क से आया है, न कि किसी अन्य के डेटा का उपयोग करने की कोशिश करने वाला हैकर वास, अंतिम_नाम (अंतिम नाम), फोटो (बड़ा अवतार, 119 फीट चौड़ा), फोटो_रेक (छोटा अवतार, 50x50) ), यूआईडी (यूजर आईडी)।
फ़िल्टर करने के
बाद, वैश्विक दायरे में समान नामों के साथ सहेजने के बाद जो पैरामीटर हमारे पास आए।
अब हमें एक स्क्रिप्ट vklogin.php बनाने की आवश्यकता है जिसमें हम आने वाले डेटा की शुद्धता की जांच करेंगे और या तो उपयोगकर्ता को अधिकृत करेंगे यदि वह हमारे डेटाबेस में पहले से है, या पहली बार हमारे पास आए उपयोगकर्ता के लिए एक नया खाता बनाएं।
if ($_REQUEST[ 'hash' ]==md5( '2445355' .$uid. '__SECRET_KEY__' )) {
// , ,
// vk-********
$result = mysql_query( "SELECT id, random, password FROM tracker_users WHERE username = 'vk-$uid'" );
setcookie( 'uid' , '' );
setcookie( 'pass' , '' );
if (mysql_num_rows($result)) {
// ,
$user = mysql_fetch_assoc($result);
mysql_query( "UPDATE tracker_users SET name = '$name' WHERE username = 'vk-$uid' LIMIT 1" );
setcookie( 'pass' ,md5($user[ 'random' ].$user[ 'password' ].$user[ 'random' ]));
setcookie( 'uid' ,$user[ 'id' ]);
} else {
//
$random = mt_rand(100000,999999);
$pwd = $uid . 'verysecretlonglongword-' ;
$pid=md5(uniqid(rand(), true ));
mysql_query( "INSERT INTO tracker_users
(username, name, password, random, id_level, email, style, language, flag, joined, lastconnect, pid, time_offset) VALUES
('vk-$uid', '$name', '" . md5($pwd) . "', $random, 3, '', 5, 7, 0, NOW(), NOW(),'$pid', '0')" );
// ,
setcookie( 'pass' ,md5($random.md5($pwd).$random));
setcookie( 'uid' ,mysql_insert_id());
}
header( "Location: /index.php" );
}
* This source code was highlighted with Source Code Highlighter .
जिस साइट पर मुझे कुकीज़ में प्राधिकरण बनाने की आवश्यकता थी, उस पर उपयोगकर्ता आईडी और नमक और पासवर्ड हैश से हैश संग्रहीत हैं। बेशक, समाधान आदर्श नहीं है, लेकिन पूरे इंजन को पूरी तरह से बदलने के लिए मेरी योजनाओं का हिस्सा नहीं था। यदि हमारे पास पहले से कोई उपयोगकर्ता है, तो हम उसे कुकीज़ बनाकर अधिकृत करेंगे, यदि वह पहली बार है, तो हम उसे डेटाबेस में जोड़ देंगे। इसके अलावा, प्रत्येक कॉल पर, हम नामों पर डेटा को अपडेट करते हैं, क्योंकि उपयोगकर्ता इसे बदल सकता है, लेकिन हम प्रासंगिकता चाहते हैं।
इसके अलावा, आपको यह सुनिश्चित करना होगा कि इस प्राधिकरण का उपयोग करने से पहले फ़ॉर्म vk- (या जिन लोगों का आप उपयोग करना चाहते हैं) के लॉगिन के साथ कोई उपयोगकर्ता नहीं हैं। फॉर्म vk- के लॉगिन के साथ उपयोग किए जाने वाले इंजन के सामान्य पंजीकरण के माध्यम से पंजीकरण पर रोक लगाना भी आवश्यक है और उपयोगकर्ताओं को सोशल नेटवर्क से अपना पासवर्ड बदलने के लिए और वैकल्पिक रूप से, प्रदर्शन नाम के साथ अवतार को प्रतिबंधित करना आवश्यक है। उन साइटों के लिए जहां पंजीकृत उपयोगकर्ताओं द्वारा ईमेल का उपयोग महत्वपूर्ण है, आपको अपने इंजन को इस तथ्य से परिचित करना होगा कि इन उपयोगकर्ताओं के पास ईमेल नहीं है।
वैकल्पिक रूप से, साइट पर उपयोगकर्ता नाम के प्रत्येक आउटपुट के बगल में, यह अलग से हाइलाइट करना संभव है कि वह सोशल नेटवर्क के माध्यम से अधिकृत है:

यदि लेख का स्तर और विषय वस्तु उपयोगकर्ताओं के लिए दिलचस्प है, तो मैं mail.ru, facebook और twitter के साथ जारी रखूंगा।
दूसरा भाग। Mail.ru