OAuth की मदद से खाता लिंक करना

OAuth लिंकिंग टाइप, दो इंडस्ट्री स्टैंडर्ड वाले OAuth 2.0 फ़्लो के साथ काम करता है. इनमें इंप्लिसिट और ऑथराइज़ेशन कोड फ़्लो शामिल है.

In the implicit code flow, Google opens your authorization endpoint in the user's browser. After successful sign in, you return a long-lived access token to Google. This access token is now included in every request sent from the Assistant to your Action.

In the authorization code flow, you need two endpoints:

  • The authorization endpoint, which is responsible for presenting the sign-in UI to your users that aren't already signed in and recording consent to the requested access in the form of a short-lived authorization code.
  • The token exchange endpoint, which is responsible for two types of exchanges:
    1. Exchanges an authorization code for a long-lived refresh token and a short-lived access token. This exchange happens when the user goes through the account linking flow.
    2. Exchanges a long-lived refresh token for a short-lived access token. This exchange happens when Google needs a new access token because the one it had expired.

Although the implicit code flow is simpler to implement, Google recommends that access tokens issued using the implicit flow never expire, because using token expiration with the implicit flow forces the user to link their account again. If you need token expiration for security reasons, you should strongly consider using the auth code flow instead.

OAuth खाता जोड़ने की प्रोसेस को लागू करना

प्रोजेक्ट कॉन्फ़िगर करें

OAuth लिंकिंग का इस्तेमाल करने के लिए, अपने प्रोजेक्ट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. Actions Console खोलें और वह प्रोजेक्ट चुनें जिसका आपको इस्तेमाल करना है.
  2. डेवलप करें टैब पर क्लिक करें और खाता लिंक करना चुनें.
  3. खाता लिंक करना के बगल में मौजूद स्विच को चालू करें.
  4. खाता बनाना सेक्शन में, नहीं, मुझे सिर्फ़ अपनी वेबसाइट पर खाता बनाने की अनुमति देनी है चुनें.
  5. लिंक करने का तरीका में, OAuth और ऑथराइज़ेशन कोड चुनें.

  6. क्लाइंट की जानकारी में:

    • Google से आने वाले अनुरोधों की पहचान करने के लिए, Google Actions से जारी किए गए Client-ID के लिए कोई वैल्यू असाइन करें.
    • अपनी कार्रवाइयों के लिए, Google की ओर से जारी किया गया क्लाइंट आईडी की वैल्यू का ध्यान रखें;
    • अपने ऑथराइज़ेशन और टोकन एक्सचेंज एंडपॉइंट के यूआरएल डालें.
  1. सेव करें पर क्लिक करें.

अपना OAuth सर्वर लागू करना

OAuth 2.0 सर्वर लागू करने पर, ऑथराइज़ेशन कोड फ़्लो लागू होता है. इसमें दो एंडपॉइंट होते हैं, जिन्हें आपकी सेवा एचटीटीपीएस से उपलब्ध कराती है. पहला एंडपॉइंट, ऑथराइज़ेशन एंडपॉइंट होता है. यह डेटा ऐक्सेस करने के लिए, उपयोगकर्ताओं से सहमति लेने या ढूंढने के लिए ज़िम्मेदार होता है. ऑथराइज़ेशन एंडपॉइंट, आपके उन उपयोगकर्ताओं को साइन-इन करने का यूज़र इंटरफ़ेस (यूआई) दिखाता है जिन्होंने पहले से साइन इन नहीं किया है. साथ ही, यह ऐक्सेस के लिए अनुरोध किए गए लोगों की सहमति को रिकॉर्ड करता है. दूसरा एंडपॉइंट है टोकन एक्सचेंज एंडपॉइंट.

जब आपकी सेट की गई कार्रवाई को आपकी सेवा के किसी एपीआई को कॉल करना होता है, तो Google इन एंडपॉइंट का इस्तेमाल करके आपके उपयोगकर्ताओं से अनुमति लेता है कि वे अपनी ओर से इन एपीआई को कॉल कर सकें.

Google की ओर से शुरू किए गए OAuth 2.0 ऑथराइज़ेशन कोड फ़्लो सेशन में यह फ़्लो है:

  1. Google, उपयोगकर्ता के ब्राउज़र में आपका ऑथराइज़ेशन एंडपॉइंट खोलता है. अगर किसी कार्रवाई के लिए फ़्लो, सिर्फ़ वॉइस डिवाइस पर शुरू होता है, तो Google, एक्ज़ीक्यूट को फ़ोन पर ट्रांसफ़र कर देता है.
  2. अगर उपयोगकर्ता ने पहले से साइन इन नहीं किया है, तो वह साइन इन करता है और Google को आपके एपीआई से अपना डेटा ऐक्सेस करने की अनुमति देता है. ऐसा तब होता है, जब उपयोगकर्ता ने पहले से अनुमति न दी हो.

  3. आपकी सेवा एक ऑथराइज़ेशन कोड बनाती है और उपयोगकर्ता के ब्राउज़र को अनुरोध से अटैच किए गए ऑथराइज़ेशन कोड के साथ, उपयोगकर्ता के ब्राउज़र को वापस Google पर रीडायरेक्ट करके, उसे Google को वापस भेज देती है.

  4. Google आपके टोकन एक्सचेंज एंडपॉइंट पर ऑथराइज़ेशन कोड भेजता है, जो कोड की प्रामाणिकता की पुष्टि करता है और ऐक्सेस टोकन और रीफ़्रेश टोकन दिखाता है. ऐक्सेस टोकन कुछ समय तक इस्तेमाल किया जा सकने वाला टोकन होता है. एपीआई ऐक्सेस करने के लिए, आपकी सेवा इसे क्रेडेंशियल के तौर पर स्वीकार करती है. रीफ़्रेश टोकन लंबे समय तक चलने वाला टोकन है. Google इस टोकन को सेव कर सकता है. इसकी समयसीमा खत्म होने पर, नए ऐक्सेस टोकन पाने के लिए इसका इस्तेमाल किया जा सकता है.

  5. उपयोगकर्ता, खाता लिंक करने की प्रक्रिया पूरी कर लेने के बाद, Assistant से आपके फ़ुलफ़िलमेंट वेबहुक को भेजे जाने वाले हर अनुरोध में एक ऐक्सेस टोकन होता है.

अनुमति के अनुरोधों को मैनेज करना

जब आपकी सेट की गई कार्रवाई को किसी OAuth 2.0 के ऑथराइज़ेशन कोड फ़्लो के ज़रिए, खाता लिंक करने की ज़रूरत होती है, तब Google उपयोगकर्ता को आपके ऑथराइज़ेशन एंडपॉइंट पर भेजता है. अनुरोध में ये पैरामीटर शामिल किए जाते हैं:

ऑथराइज़ेशन एंडपॉइंट पैरामीटर
client_id वह Google क्लाइंट आईडी जिसे आपने Google के साथ रजिस्टर किया है.
redirect_uri वह यूआरएल जिस पर इस अनुरोध का जवाब भेजा जाता है.
state हिसाब-किताब की ऐसी वैल्यू जिसे रीडायरेक्ट करने वाले यूआरआई में, Google को वापस भेजा जाता है. इसमें कोई बदलाव नहीं होता.
scope ज़रूरी नहीं: स्कोप स्ट्रिंग का स्पेस-डीलिमिटेड सेट, जो उस डेटा के बारे में बताता है जिसके लिए Google, अनुमति का अनुरोध कर रहा है.
response_type स्ट्रिंग code.

उदाहरण के लिए, अगर आपका ऑथराइज़ेशन एंडपॉइंट https://myservice.example.com/auth पर उपलब्ध है, तो अनुरोध ऐसा दिख सकता है:

GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&scope=REQUESTED_SCOPES&response_type=code

आपका ऑथराइज़ेशन एंडपॉइंट, साइन इन करने के अनुरोधों को मैनेज कर सके, इसके लिए यह तरीका अपनाएं:

  1. पुष्टि करें कि client_id, Google पर रजिस्टर किए गए आपके Google क्लाइंट आईडी से मेल खाता हो. साथ ही, यह भी पुष्टि करें कि redirect_uri, आपकी सेवा के लिए Google से मिले दूसरे वेबलिंक से मेल खाता हो. ये जांच इसलिए ज़रूरी हैं, ताकि अनचाहे या गलत तरीके से कॉन्फ़िगर किए गए क्लाइंट ऐप्लिकेशन को ऐक्सेस न दिया जा सके.

    अगर एक से ज़्यादा OAuth 2.0 फ़्लो काम करते हैं, तो यह भी पुष्टि करें कि response_type, code है.

  2. देखें कि उपयोगकर्ता ने आपकी सेवा में साइन इन किया हुआ है या नहीं. अगर उपयोगकर्ता ने साइन इन नहीं किया है, तो अपनी सेवा का साइन-इन या साइन-अप फ़्लो पूरा करें.

  3. एक ऑथराइज़ेशन कोड जनरेट करें, जिसका इस्तेमाल Google आपके एपीआई को ऐक्सेस करने के लिए करेगा. ऑथराइज़ेशन कोड किसी भी स्ट्रिंग की वैल्यू हो सकता है. हालांकि, इसे उपयोगकर्ता, वह क्लाइंट, जिसके लिए टोकन, और कोड की समयसीमा खत्म होने की जानकारी के बारे में जानकारी देनी चाहिए. आम तौर पर, ऐसे ऑथराइज़ेशन कोड जारी किए जाते हैं जिनकी समयसीमा करीब 10 मिनट हो जाती है.

  4. पुष्टि करें कि redirect_uri पैरामीटर से दिए गए यूआरएल में यह फ़ॉर्म शामिल है:

    https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
    YOUR_PROJECT_ID, Actions Console के प्रोजेक्ट सेटिंग पेज पर मौजूद आईडी है.

  5. उपयोगकर्ता के ब्राउज़र को redirect_uri पैरामीटर में दिए गए यूआरएल पर रीडायरेक्ट करें. code और state पैरामीटर को जोड़कर, रीडायरेक्ट करते समय अभी जनरेट किया गया ऑथराइज़ेशन कोड और ओरिजनल, बिना बदलाव की स्थिति वाली वैल्यू शामिल करें. नतीजे देने वाले यूआरएल का एक उदाहरण नीचे दिया गया है:

    https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID?code=AUTHORIZATION_CODE&state=STATE_STRING

टोकन एक्सचेंज के अनुरोध मैनेज करना

आपकी सेवा का टोकन एक्सचेंज एंडपॉइंट दो तरह के टोकन एक्सचेंज के लिए ज़िम्मेदार है:

  • ऐक्सेस टोकन के लिए ऑथराइज़ेशन कोड बदलें और टोकन रीफ़्रेश करें
  • ऐक्सेस टोकन के लिए एक्सचेंज रीफ़्रेश टोकन

टोकन एक्सचेंज के अनुरोधों में ये पैरामीटर शामिल होते हैं:

टोकन एक्सचेंज एंडपॉइंट के पैरामीटर
client_id ऐसी स्ट्रिंग जो अनुरोध के ऑरिजिन की पहचान Google के तौर पर करती है. यह स्ट्रिंग, आपके सिस्टम में Google के यूनीक आइडेंटिफ़ायर के तौर पर रजिस्टर होनी चाहिए.
client_secret वह सीक्रेट स्ट्रिंग जिसे आपने अपनी सेवा के लिए, Google के साथ रजिस्टर किया है.
grant_type किस तरह के टोकन का लेन-देन किया जा रहा है. authorization_code या refresh_token.
code grant_type=authorization_code होने पर, Google को आपके साइन-इन या टोकन एक्सचेंज एंडपॉइंट से मिला कोड.
redirect_uri grant_type=authorization_code होने पर, यह पैरामीटर वह यूआरएल होता है जिसका इस्तेमाल अनुमति पाने के शुरुआती अनुरोध में किया जाता है.
refresh_token grant_type=refresh_token होने पर, Google को आपके टोकन एक्सचेंज एंडपॉइंट से मिला रीफ़्रेश टोकन.
ऐक्सेस टोकन के लिए ऑथराइज़ेशन कोड बदलें और टोकन रीफ़्रेश करें

जब उपयोगकर्ता साइन इन करता है और आपका ऑथराइज़ेशन एंडपॉइंट, Google को कुछ समय तक चलने वाला ऑथराइज़ेशन कोड दिखाता है, तो Google आपके टोकन एक्सचेंज एंडपॉइंट पर एक अनुरोध भेजता है, ताकि ऐक्सेस टोकन और रीफ़्रेश टोकन से ऑथराइज़ेशन कोड को बदला जा सके.

इन अनुरोधों के लिए, grant_type की वैल्यू authorization_code होती है और code की वैल्यू, Google को पहले दिए गए ऑथराइज़ेशन कोड की वैल्यू होती है. ऐक्सेस टोकन और रीफ़्रेश टोकन के बदले, ऑथराइज़ेशन कोड को बदलने के अनुरोध का एक उदाहरण नीचे दिया गया है:

POST /token HTTP/1.1
Host: oauth2.example.com
Content-Type: application/x-www-form-urlencoded

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI

ऐक्सेस टोकन और रीफ़्रेश टोकन के लिए ऑथराइज़ेशन कोड की अदला-बदली करने के लिए, आपका टोकन एक्सचेंज एंडपॉइंट POST के अनुरोध का जवाब देता है. इसके लिए यह तरीका अपनाएं:

  1. पुष्टि करें कि client_id, अनुरोध के ऑरिजिन की पहचान, अनुमति वाले ऑरिजिन के तौर पर करता है. साथ ही, यह भी पुष्टि करें कि client_secret, अनुमानित वैल्यू से मेल खाता हो.
  2. इन बातों की पुष्टि करें:
    • ऑथराइज़ेशन कोड मान्य है और उसकी समयसीमा खत्म नहीं हुई है. अनुरोध में बताए गए क्लाइंट आईडी, ऑथराइज़ेशन कोड से जुड़े क्लाइंट आईडी से मेल खाते हैं.
    • redirect_uri पैरामीटर से मिला यूआरएल, अनुमति के शुरुआती अनुरोध में इस्तेमाल की गई वैल्यू से मेल खाता है.
  3. अगर ऊपर दी गई सभी शर्तों की पुष्टि नहीं की जा सकती, तो एचटीटीपी 400 के गलत अनुरोध की गड़बड़ी दिखाएं. गड़बड़ी का कोड {"error": "invalid_grant"} को मुख्य भाग के तौर पर शामिल करें.
  4. ऐसा न होने पर, ऑथराइज़ेशन कोड से मिले यूज़र आईडी का इस्तेमाल करके, रीफ़्रेश टोकन और ऐक्सेस टोकन जनरेट करें. ये टोकन, किसी भी स्ट्रिंग की वैल्यू हो सकते हैं. हालांकि, इन टोकन से उपयोगकर्ता और क्लाइंट के बारे में साफ़ तौर पर पता चलना चाहिए. साथ ही, इनका अंदाज़ा भी नहीं लगाया जा सकता. ऐक्सेस टोकन के लिए, इसकी समयसीमा खत्म होने की तारीख भी रिकॉर्ड करें. आम तौर पर, टोकन जारी किए जाने के एक घंटे बाद. रीफ़्रेश टोकन की समयसीमा खत्म नहीं होती.
  5. एचटीटीपीएस रिस्पॉन्स के मुख्य हिस्से में, यह JSON ऑब्जेक्ट दिखाएं:
    {
    "token_type": "Bearer",
    "access_token": "ACCESS_TOKEN",
    "refresh_token": "REFRESH_TOKEN",
    "expires_in": SECONDS_TO_EXPIRATION
    }
    

Google, उपयोगकर्ता के लिए ऐक्सेस टोकन और रीफ़्रेश टोकन सेव करता है. साथ ही, ऐक्सेस टोकन की समयसीमा खत्म होने की जानकारी रिकॉर्ड करता है. ऐक्सेस टोकन की समयसीमा खत्म होने पर, Google आपके टोकन एक्सचेंज एंडपॉइंट से नया ऐक्सेस टोकन पाने के लिए, रीफ़्रेश टोकन का इस्तेमाल करता है.

ऐक्सेस टोकन के लिए एक्सचेंज रीफ़्रेश टोकन

ऐक्सेस टोकन की समयसीमा खत्म होने पर, Google आपके टोकन एक्सचेंज एंडपॉइंट को एक अनुरोध भेजता है. इस अनुरोध में, रीफ़्रेश टोकन को नए ऐक्सेस टोकन से बदलने के लिए कहा जाता है.

इन अनुरोधों के लिए, grant_type की वैल्यू refresh_token है और refresh_token की वैल्यू, Google को पहले सबमिट किए गए रीफ़्रेश टोकन की वैल्यू है. रीफ़्रेश टोकन को ऐक्सेस टोकन से बदलने के अनुरोध का एक उदाहरण नीचे दिया गया है:

POST /token HTTP/1.1
Host: oauth2.example.com
Content-Type: application/x-www-form-urlencoded

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

रीफ़्रेश टोकन को ऐक्सेस टोकन से बदलने के लिए, आपका टोकन एक्सचेंज एंडपॉइंट POST के अनुरोधों का जवाब देता है. इसके लिए यह तरीका अपनाएं:

  1. पुष्टि करें कि client_id, अनुरोध के ऑरिजिन की पहचान Google के तौर पर करता है. साथ ही, यह भी पुष्टि करें कि client_secret, उम्मीद के मुताबिक वैल्यू से मेल खाता है.
  2. पुष्टि करें कि रीफ़्रेश टोकन मान्य है और अनुरोध में दिया गया क्लाइंट आईडी, रीफ़्रेश टोकन से जुड़े क्लाइंट आईडी से मेल खाता है.
  3. अगर ऊपर दी गई सभी शर्तों की पुष्टि नहीं की जा सकती, तो एचटीटीपी 400 के गलत अनुरोध की गड़बड़ी दिखाएं. गड़बड़ी का कोड {"error": "invalid_grant"} को मुख्य भाग के तौर पर शामिल करें.
  4. इसके अलावा, ऐक्सेस टोकन जनरेट करने के लिए, रीफ़्रेश टोकन में मौजूद User-ID का इस्तेमाल करें. ये टोकन, किसी भी स्ट्रिंग की वैल्यू हो सकती हैं. हालांकि, ये टोकन उस उपयोगकर्ता और क्लाइंट के बारे में साफ़ तौर पर बताना चाहिए जिसके लिए टोकन इस्तेमाल किया जाना है. साथ ही, इनका अंदाज़ा भी नहीं लगाया जा सकता. ऐक्सेस टोकन के लिए, इसकी समयसीमा खत्म होने की तारीख भी रिकॉर्ड करें. आम तौर पर, टोकन जारी किए जाने के एक घंटे बाद.
  5. एचटीटीपीएस रिस्पॉन्स के मुख्य हिस्से में, यह JSON ऑब्जेक्ट दिखाएं:
    {
    "token_type": "Bearer",
    "access_token": "ACCESS_TOKEN",
    "expires_in": SECONDS_TO_EXPIRATION
    }

पुष्टि करने के लिए, वॉइस यूज़र इंटरफ़ेस डिज़ाइन करें

यह पता करना कि उपयोगकर्ता की पुष्टि हो चुकी है या नहीं और खाता लिंक करने की प्रक्रिया शुरू करें

  1. Actions कंसोल में अपना Actions Builder प्रोजेक्ट खोलें.
  2. अपनी सेट की गई कार्रवाई में खाता लिंक करने की प्रोसेस शुरू करने के लिए, एक नया सीन बनाएं:
    1. सीन पर क्लिक करें.
    2. नया सीन जोड़ने के लिए, जोड़ें (+) आइकॉन पर क्लिक करें.
  3. नए सीन में, शर्तों के लिए, जोड़ें आइकॉन पर क्लिक करें.
  4. एक शर्त जोड़ें जो यह जांच करती है कि बातचीत से जुड़ा उपयोगकर्ता, पुष्टि किया गया उपयोगकर्ता है या नहीं. अगर जांच पूरी नहीं हो पाती, तो आपकी सेट की गई कार्रवाई, बातचीत के दौरान खाता लिंक नहीं कर पाएगी. साथ ही, इसे ऐसे फ़ंक्शन का ऐक्सेस देना होगा जिसके लिए खाता लिंक करने की ज़रूरत नहीं होती.
    1. शर्त वाले Enter new expression फ़ील्ड में, यह लॉजिक डालें: user.verificationStatus != "VERIFIED"
    2. ट्रांज़िशन में, ऐसा सीन चुनें जिसमें खाता लिंक करने की ज़रूरत न हो या कोई ऐसा सीन चुनें जो सिर्फ़ मेहमान के लिए उपलब्ध सुविधा के लिए शुरुआती पॉइंट हो.

  1. शर्तों के लिए, ' जोड़ें' आइकॉन पर क्लिक करें.
  2. अगर उपयोगकर्ता की पहचान से जुड़ी जानकारी नहीं है, तो खाता लिंक करने के फ़्लो को ट्रिगर करने के लिए कोई शर्त जोड़ें.
    1. शर्त वाले Enter new expression फ़ील्ड में, यह लॉजिक डालें: user.verificationStatus == "VERIFIED"
    2. ट्रांज़िशन में जाकर, खाता लिंक करना सिस्टम सीन चुनें.
    3. सेव करें पर क्लिक करें.

सेव करने के बाद, आपके प्रोजेक्ट में खाता लिंक करने वाला <SceneName>_AccountLinking नाम का एक नया सीन जोड़ा जाता है.

खाता लिंक करने के सीन को पसंद के मुताबिक बनाना

  1. सीन में जाकर, खाता लिंक करने वाले सिस्टम का सीन चुनें.
  2. सूचना भेजें पर क्लिक करें. इसके बाद, एक छोटा वाक्य जोड़कर उपयोगकर्ता को बताएं कि कार्रवाई को उनकी पहचान का ऐक्सेस क्यों चाहिए. उदाहरण के लिए, "आपकी प्राथमिकताएं सेव करने के लिए".
  3. सेव करें पर क्लिक करें.

  1. शर्तें सेक्शन में, अगर उपयोगकर्ता खाता लिंक करने की प्रोसेस पूरी कर लेता है पर क्लिक करें.
  2. अगर उपयोगकर्ता अपने खाते को लिंक करने की सहमति देता है, तो फ़्लो को कॉन्फ़िगर करना. उदाहरण के लिए, ज़रूरी किसी भी कारोबारी लॉजिक को प्रोसेस करने और मूल सीन पर वापस जाने के लिए वेबहुक को कॉल करें.
  3. सेव करें पर क्लिक करें.

  1. शर्तें सेक्शन में, अगर उपयोगकर्ता खाता जोड़ने की प्रोसेस को रद्द करता है या उसे खारिज करता है, तो उस पर क्लिक करें.
  2. अगर उपयोगकर्ता अपने खाते को लिंक करने के लिए सहमत नहीं है, तो फ़्लो कॉन्फ़िगर करें. उदाहरण के लिए, स्वीकार करने वाला मैसेज भेजें और उन सीन पर रीडायरेक्ट करें जिनमें ऐसी सुविधाएं दी गई हों जिनके लिए खाता लिंक करने की ज़रूरत न हो.
  3. सेव करें पर क्लिक करें.

  1. शर्तें सेक्शन में, अगर सिस्टम या नेटवर्क की गड़बड़ी होती है पर क्लिक करें.
  2. कॉन्फ़िगर करें कि अगर सिस्टम या नेटवर्क की गड़बड़ियों की वजह से खाता लिंक करने का फ़्लो पूरा नहीं हो पा रहा है, तो फ़्लो कैसे आगे बढ़ना चाहिए. उदाहरण के लिए, स्वीकार करने वाला मैसेज भेजें और उन सीन पर रीडायरेक्ट करें जिनमें ऐसी सुविधाएं दी गई हों जिनके लिए खाता लिंक करने की ज़रूरत न हो.
  3. सेव करें पर क्लिक करें.

डेटा ऐक्सेस करने के अनुरोधों को मैनेज करना

अगर Assistant के अनुरोध में कोई ऐक्सेस टोकन है, तो पहले देखें कि ऐक्सेस टोकन मान्य है या नहीं और उसकी समयसीमा खत्म नहीं हुई है. इसके बाद, अपने डेटाबेस से जुड़ा हुआ उपयोगकर्ता खाता वापस पाएं.