Java के लिए OAuth क्लाइंट: लाइब्रेरीज़ और कोड उदाहरणों की समीक्षा

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

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

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

Java के लिए OAuth क्लाइंट: कैसे चुनें और उपयोग करें

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

Java के लिए कई परिपक्व लाइब्रेरीज़ मौजूद हैं जो OAuth क्लाइंट और सर्वर दोनों भूमिकाओं को लागू करती हैं। इस लेख में, हम तीन सबसे लोकप्रिय समाधानों पर चर्चा करेंगे: ScribeJava, Spring Security OAuth, और Google OAuth Client Library for Java। आप सीखेंगे कि उन्हें अपने प्रोजेक्ट में कैसे शामिल करें, बुनियादी एकीकरण कैसे लिखें, और अपने कार्यों के लिए सही टूल कैसे चुनें।

1. ScribeJava — हल्का OAuth क्लाइंट

ScribeJava एक सरल और हल्की लाइब्रेरी है जो OAuth 1.0a और OAuth 2.0 को सपोर्ट करती है। यह स्टैंडअलोन एप्लिकेशन या माइक्रोसर्विसेज़ के लिए आदर्श है जहाँ पूरे Spring स्टैक की आवश्यकता नहीं है।

कनेक्शन (Maven)

<dependency>
    <groupId>com.github.scribejava</groupId>
    <artifactId>scribejava-apis</artifactId>
    <version>8.3.3</version>
</dependency>

उदाहरण: Google के माध्यम से लॉगिन

import com.github.scribejava.apis.GoogleApi20;
import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.model.*;
import com.github.scribejava.core.oauth.OAuth20Service;

public class GoogleOAuthExample {
    public static void main(String[] args) throws Exception {
        String clientId = "आपका_CLIENT_ID";
        String clientSecret = "आपका_CLIENT_SECRET";
        String callbackUrl = "http://localhost:8080/callback";

        OAuth20Service service = new ServiceBuilder(clientId)
                .apiSecret(clientSecret)
                .callback(callbackUrl)
                .scope("email profile")
                .build(GoogleApi20.instance());

        // उपयोगकर्ता को रीडायरेक्ट करने के लिए URL प्राप्त करें
        String authorizationUrl = service.getAuthorizationUrl();
        System.out.println("ब्राउज़र में खोलें: " + authorizationUrl);

        // रीडायरेक्ट के बाद प्राधिकरण कोड प्राप्त करें (वास्तविक एप्लिकेशन में QueryString से)
        String code = "रीडायरेक्ट_से_कोड";

        // कोड को टोकन से बदलें
        OAuth2AccessToken accessToken = service.getAccessToken(code);
        System.out.println("Access Token: " + accessToken.getAccessToken());

        // उपयोगकर्ता डेटा का अनुरोध करने के लिए टोकन का उपयोग करें
        OAuthRequest request = new OAuthRequest(Verb.GET, "https://www.googleapis.com/oauth2/v2/userinfo");
        service.signRequest(accessToken, request);
        Response response = service.execute(request);
        System.out.println("API उत्तर: " + response.getBody());
    }
}

ScribeJava के लाभ:

  • न्यूनतम निर्भरताएँ (केवल OkHttp या URLConnection)।
  • बॉक्स से बाहर दर्जनों प्रदाताओं का समर्थन (Google, Facebook, GitHub, VK, आदि)।
  • जटिल अमूर्तताओं के बिना सरल API।

2. Spring Security OAuth — Spring Boot प्रोजेक्ट्स के लिए

यदि आप Spring Boot का उपयोग कर रहे हैं, तो Spring Security OAuth (मॉड्यूल spring-security-oauth2-client) सबसे स्वाभाविक विकल्प है। यह Security श्रृंखला के साथ पूरी तरह से एकीकृत होता है और application.yml के माध्यम से प्रदाताओं को कॉन्फ़िगर करने की अनुमति देता है।

कनेक्शन (Gradle)

implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

कॉन्फ़िगरेशन उदाहरण (application.yml)

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: आपका_CLIENT_ID
            client-secret: आप                    

अनुशंसाएँ