C++ के लिए OAuth क्लाइंट: प्राधिकरण के लिए liboauth लाइब्रेरी

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

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

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

C++ के लिए OAuth क्लाइंट: liboauthcpp लाइब्रेरी



आधुनिक वेब डेवलपमेंट में, OAuth प्रोटोकॉल के माध्यम से बाहरी API के साथ एकीकरण एक वास्तविक मानक बन गया है। C++ डेवलपर्स के लिए, मानक लाइब्रेरी में अंतर्निहित समर्थन की कमी के कारण एक विश्वसनीय OAuth क्लाइंट बनाना एक कठिन कार्य हो सकता है। liboauthcpp C++ में एक हल्की, क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी है जो OAuth 1.0a और OAuth 2.0 के आंशिक समर्थन के लिए तैयार तंत्र प्रदान करती है। यह डेस्कटॉप एप्लिकेशन, सर्वर उपयोगिताओं और IoT उपकरणों में एम्बेड करने के लिए आदर्श है, जहाँ प्रदर्शन और न्यूनतम निर्भरताएँ महत्वपूर्ण हैं।



मुख्य विशेषताएँ

  • OAuth 1.0a समर्थन — HMAC-SHA1 और RSA-SHA1 हस्ताक्षरों का पूर्ण कार्यान्वयन।
  • OAuth 2.0 के बुनियादी तंत्र — प्राधिकरण कोड और क्लाइंट क्रेडेंशियल प्राप्त करना (रिफ्रेश टोकन के बिना)।
  • न्यूनतम निर्भरताएँ — केवल C++11/14 कंपाइलर और OpenSSL (या वैकल्पिक क्रिप्टो प्रदाता) की आवश्यकता है।
  • क्रॉस-प्लेटफ़ॉर्म — Linux, macOS, Windows (MinGW/MSVC) पर काम करता है।
  • सरल API — सहज ज्ञान युक्त क्लासेस OAuthClient, OAuthToken, OAuthRequest।


स्थापना

अनुशंसित स्थापना विधि vcpkg पैकेज सिस्टम के माध्यम से या स्रोत से निर्माण करना है:

# vcpkg के माध्यम सेvcpkg install liboauthcpp

# या GitHub से निर्माणgit clone https://github.com/lyokato/liboauthcpp.gitcd liboauthcppmkdir build && cd buildcmake .. -DCMAKE_INSTALL_PREFIX=/usr/localmake && sudo make install


स्थापना के बाद, हेडर फ़ाइल शामिल करें और लाइब्रेरी से लिंक करें:

#include <oauthcpp/oauthcpp.hpp>// लिंकिंग: -loauthcpp -lssl -lcrypto


उदाहरण: OAuth 1.0a (Twitter API)

एक क्लासिक परिदृश्य पर विचार करें — OAuth 1.0a का उपयोग करके Twitter API v1.1 के माध्यम से एक ट्वीट भेजना:

#include <iostream>#include <oauthcpp/oauthcpp.hpp>#include <curl/curl.h>  // HTTP ट्रांसपोर्ट के लिए

int main() { // 1. क्रेडेंशियल का आरंभीकरण oauthcpp::OAuthClient client( "YOUR_CONSUMER_KEY", "YOUR_CONSUMER_SECRET", oauthcpp::OAuthClient::HttpMethod::POST );

// 2. उपयोगकर्ता टोकन सेट करना (पहले प्राप्त) oauthcpp::OAuthToken accessToken( "USER_ACCESS_TOKEN", "USER_TOKEN_SECRET" ); client.setToken(accessToken);

// 3. अनुरोध तैयार करना std::string url = "https://api.twitter.com/1.1/statuses/update.json"; oauthcpp::OAuthRequest request(url); request.addParameter("status", "C++ OAuth क्लाइंट से नमस्ते!");

// 4. अनुरोध पर हस्ताक्षर std::string signedUrl = client.sign(request);

// 5. libcurl के माध्यम से भेजना CURL* curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_URL, signedUrl.c_str()); curl_easy_setopt(curl, CURLOPT_POST, 1L); // ... SSL सेटअप और प्रतिक्रिया प्रसंस्करण curl_easy_perform(curl); curl_easy_cleanup(curl);

return 0;}


उदाहरण: OAuth 2.0 (Google API)

OAuth 2.0 के साथ काम करने के लिए, सरलीकृत तंत्र OAuth2Client का उपयोग करें (liboauthcpp का हिस्सा):

#include <iostream>#include <oauthcpp/oauth2.hpp>

int main() { oauthcpp::OAuth2Client client( "YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "https://oauth2.googleapis.com/token" );

// प्राधिकरण कोड के माध्यम से टोकन प्राप्त करना std::string authCode = "AUTH_CODE_FROM_REDIRECT"; oauthcpp::OAuthToken token = client.getAccessToken(authCode, "https://your-app.com/callback");

std::cout << "एक्सेस टोकन: " << token.getAccessToken() << std::endl; std::cout << "समाप्ति समय: " << token.getExpiresIn() &

अनुशंसाएँ