OAuth-क्लाइंट PHP के लिए: Google, GitHub और VK के साथ एकीकरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP के लिए OAuth क्लाइंट: एकीकरण के लिए पूर्ण गाइड



आधुनिक वेब डेवलपमेंट में OAuth (Open Authorization) तृतीय-पक्ष सेवाओं के माध्यम से लॉगिन आयोजित करने के लिए डी-फैक्टो मानक बन गया है। PHP के लिए OAuth-क्लाइंट आपके उपयोगकर्ताओं को अलग पंजीकरण बनाने की आवश्यकता के बिना Google, GitHub, VKontakte और अन्य प्रदाताओं के खातों के माध्यम से आपकी साइट पर लॉग इन करने की अनुमति देता है।



इस लेख में, हम लोकप्रिय PHP लाइब्रेरी League OAuth2 Client पर विचार करेंगे, जो विभिन्न OAuth2 प्रदाताओं के साथ काम करने के लिए एक एकीकृत इंटरफ़ेस प्रदान करती है।



OAuth2 क्या है और इसकी आवश्यकता क्यों है?



OAuth2 एक प्राधिकरण प्रोटोकॉल है जो उपयोगकर्ता के संसाधनों तक पहुंच को प्रत्यायोजित करने की अनुमति देता है। तृतीय-पक्ष सेवाओं के पासवर्ड संग्रहीत करने के बजाय, आपको एक अस्थायी एक्सेस टोकन प्राप्त होता है। मुख्य लाभ:



  • सुरक्षा — उपयोगकर्ता के पासवर्ड आपके एप्लिकेशन को प्रेषित नहीं किए जाते हैं
  • सुविधा — उपयोगकर्ता एक क्लिक से लॉग इन करते हैं
  • विश्वास — डेटा लीक का कम जोखिम
  • अतिरिक्त डेटा — ईमेल, नाम, अवतार और अन्य जानकारी प्राप्त की जा सकती है


League OAuth2 Client लाइब्रेरी की स्थापना



PHP में OAuth2 के साथ काम करने के लिए, आधिकारिक पैकेज league/oauth2-client का उपयोग करने की अनुशंसा की जाती है। स्थापना Composer के माध्यम से की जाती है:



composer require league/oauth2-client


विशिष्ट प्रदाताओं के लिए अतिरिक्त पैकेज की आवश्यकता होगी। उदाहरण के लिए:



composer require league/oauth2-google      # Googlecomposer require league/oauth2-github       # GitHubcomposer require digitalcloud/oauth2-vk     # VK (अनाधिकारिक)


OAuth2-क्लाइंट की मूल आर्किटेक्चर



कोई भी OAuth2-क्लाइंट निम्नलिखित योजना के अनुसार काम करता है:



  1. उपयोगकर्ता "प्रदाता के माध्यम से लॉग इन करें" बटन पर क्लिक करता है
  2. आपका एप्लिकेशन उपयोगकर्ता को प्रदाता के प्राधिकरण पृष्ठ पर रीडायरेक्ट करता है
  3. उपयोगकर्ता पहुंच की पुष्टि करता है
  4. प्रदाता आपके callback-URI पर एक प्राधिकरण कोड लौटाता है
  5. आपका एप्लिकेशन कोड को एक्सेस टोकन के लिए एक्सचेंज करता है
  6. टोकन की सहायता से, आप प्रदाता के API से उपयोगकर्ता डेटा प्राप्त करते हैं


Google के साथ एकीकरण का उदाहरण



Google के माध्यम से प्राधिकरण के लिए एक पूर्ण कार्यशील उदाहरण पर विचार करें। पहले Google Cloud Console में एक प्रोजेक्ट बनाएं और Client ID और Client Secret प्राप्त करें।



फ़ाइलों की संरचना:

  • config.php — एप्लिकेशन सेटिंग्स
  • login.php — लॉगिन पेज
  • callback.php — Google से प्रतिक्रिया का हैंडलर


config.php



<?php// Google के लिए OAuth सेटिंग्सdefine('GOOGLE_CLIENT_ID', 'आपका_client_id.apps.googleusercontent.com');define('GOOGLE_CLIENT_SECRET', 'आपका_client_secret');define('GOOGLE_REDIRECT_URI', 'https://आपकी-साइट.ru/callback.php');

// लाइब्रेरी शामिल करेंrequire_once 'vendor/autoload.php';

use League\\OAuth2\\Client\\Provider\\Google;

// प्रदाता बनाएँ$provider = new Google([ 'clientId' => GOOGLE_CLIENT_ID, 'clientSecret' => GOOGLE_CLIENT_SECRET, 'redirectUri' => GOOGLE_REDIRECT_URI,]);?>


login.php



<?phprequire_once 'config.php';

// प्राधिकरण के लिए URL जनरेट करें$authUrl = $provider->getAuthorizationUrl([ 'scope' => ['email', 'profile'], // ईमेल और प्रोफ़ाइल का अनुरोध करें]);

// CSRF हमलों से बचाव के लिए state सहेजें$_SESSION['oauth2state'] = $provider->getState();

// उपयोगकर्ता को रीडायरेक्ट करेंheader('Location: ' . $authUrl);exit;?>

<!-- वैकल्पिक रूप से: HTML पर बटन --><a href="<?= htmlspecialchars($authUrl) ?>">Google के माध्यम से लॉग इन करें</a>


callbac

अनुशंसाएँ