सभी ऐप्लिकेशन और वेबसाइटों पर अपने-आप साइन इन होने की सुविधा चालू करना

अगर 'पासवर्ड के लिए Smart Lock' का इस्तेमाल करने वाला आपका ऐप्लिकेशन, उपयोगकर्ता के डेटाबेस को आपकी वेबसाइट से शेयर करता है या आपके ऐप्लिकेशन और वेबसाइट में, फ़ेडरेटेड साइन इन की सेवा देने वाली कंपनियों (जैसे कि 'Google साइन इन') का इस्तेमाल किया जाता है, तो ऐप्लिकेशन को वेबसाइट से जोड़ा जा सकता है. इससे उपयोगकर्ता अपने क्रेडेंशियल, ऐप्लिकेशन और वेबसाइट, दोनों में एक साथ अपने-आप साइन इन कर पाएंगे.

ऐप्लिकेशन को किसी वेबसाइट से जोड़ने के लिए, अपनी वेबसाइट पर डिजिटल एसेट लिंक JSON फ़ाइल होस्ट करके और अपने ऐप्लिकेशन और मेनिफ़ेस्ट में डिजिटल एसेट लिंक फ़ाइल का लिंक जोड़कर असोसिएशन तय करें.

अपनी वेबसाइट पर डिजिटल एसेट लिंक से जुड़ी घोषणा को होस्ट करके, आप अपनी वेबसाइट को Android 8.0 और उसके बाद वाले वर्शन पर चलते हुए, अपने ऐप्लिकेशन के साथ ऑटोमैटिक भरने की सुविधा का डेटा शेयर करने की सुविधा भी देते हैं.

ज़रूरी शर्तें

आपकी वेबसाइट के साइन इन डोमेन के लिए एचटीटीपीएस इस्तेमाल करना ज़रूरी है.

अपने ऐप्लिकेशन को अपनी वेबसाइट से जोड़ना

  1. डिजिटल एसेट लिंक JSON फ़ाइल बनाएं.

    उदाहरण के लिए, https://signin.example.com और पैकेज नाम com.example वाले Android ऐप्लिकेशन से साइन इन क्रेडेंशियल शेयर करने की घोषणा करने के लिए, assetlinks.json नाम वाली फ़ाइल बनाएं. इसका कॉन्टेंट इस तरह का होना चाहिए:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://signin.example.com"
      }
     },
     {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example",
        "sha256_cert_fingerprints": [
          "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
        ]
      }
     }]
    

    relation फ़ील्ड, एक या एक से ज़्यादा ऐसी स्ट्रिंग का कलेक्शन है जिसमें बताए गए संबंध की जानकारी दी जाती है. यह बताने के लिए कि ऐप्लिकेशन और साइटें, साइन इन क्रेडेंशियल शेयर करती हैं, स्ट्रिंग delegate_permission/common.get_login_creds बताएं.

    target फ़ील्ड एक ऐसा ऑब्जेक्ट है जो उस एसेट के बारे में बताता है जिस पर एलान लागू होता है. नीचे दिए गए फ़ील्ड, वेबसाइट की पहचान करते हैं:

    namespace web
    site

    वेबसाइट का यूआरएल, https://domain[:optional_port] के फ़ॉर्मैट में है. उदाहरण के लिए, https://www.example.com.

    domain पूरी तरह क्वालिफ़ाइड होना चाहिए. साथ ही, एचटीटीपीएस के लिए पोर्ट 443 का इस्तेमाल करते समय, optional_port को शामिल नहीं किया जाना चाहिए.

    site टारगेट सिर्फ़ रूट डोमेन हो सकता है: आप किसी खास सबडायरेक्ट्री के लिए ऐप्लिकेशन असोसिएशन को सीमित नहीं कर सकते. यूआरएल में पाथ शामिल न करें, जैसे कि यूआरएल के पीछे का स्लैश.

    सबडोमेन को मैच नहीं माना जाता: इसका मतलब यह है कि अगर आपने domain को www.example.com के तौर पर बताया है, तो डोमेन www.counter.example.com आपके ऐप्लिकेशन से नहीं जुड़ा होता.

    ये फ़ील्ड किसी Android ऐप्लिकेशन की पहचान करते हैं:

    namespace android_app
    package_name ऐप्लिकेशन के मेनिफ़ेस्ट में इस्तेमाल किया गया पैकेज का नाम. उदाहरण के लिए, com.example.android
    sha256_cert_fingerprints आपके ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट के SHA256 फ़िंगरप्रिंट. फ़िंगरप्रिंट जनरेट करने के लिए, आप इस निर्देश का इस्तेमाल कर सकते हैं:
    $ keytool -list -v -keystore my-release-key.keystore

    ज़्यादा जानकारी के लिए, डिजिटल एसेट लिंक का रेफ़रंस देखें.

  2. साइन इन डोमेन पर इस जगह पर डिजिटल एसेट लिंक JSON फ़ाइल होस्ट करें:

    https://domain[:optional_port]/.well-known/assetlinks.json

    उदाहरण के लिए, अगर आपका साइन-इन डोमेन signin.example.com है, तो https://signin.example.com/.well-known/assetlinks.json पर JSON फ़ाइल होस्ट करें.

    डिजिटल एसेट लिंक फ़ाइल के लिए MIME टाइप, JSON होना चाहिए. पक्का करें कि सर्वर, रिस्पॉन्स में Content-Type: application/json हेडर भेजे.

  3. पक्का करें कि आपका होस्ट, Google को आपकी डिजिटल एसेट लिंक फ़ाइल वापस पाने की अनुमति देता हो. अगर आपके पास robots.txt फ़ाइल है, तो Googlebot एजेंट को /.well-known/assetlinks.json को वापस पाने की अनुमति देनी होगी. ज़्यादातर साइटें, अपने-आप चलने वाले एजेंट को /.well-known/ पाथ में फ़ाइलें वापस पाने की अनुमति दे सकती हैं, ताकि दूसरी सेवाएं उन फ़ाइलों में मौजूद मेटाडेटा को ऐक्सेस कर सकें:

    User-agent: *
    Allow: /.well-known/
    

  4. Android ऐप्लिकेशन में असोसिएशन का एलान करें.

    1. <application> के तहत मेनिफ़ेस्ट फ़ाइल में नीचे दी गई पंक्ति जोड़ें:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. strings.xml फ़ाइल में asset_statements स्ट्रिंग रिसॉर्स जोड़ें. asset_statements स्ट्रिंग, JSON ऑब्जेक्ट है, जो लोड करने के लिए assetlinks.json फ़ाइलें तय करता है. आपको स्ट्रिंग में इस्तेमाल किए गए किसी भी अपॉस्ट्रफ़ी और कोटेशन मार्क को एस्केप करना होगा. उदाहरण के लिए:

        <string name="asset_statements" translatable="false">
        [{
          \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
        }]
        </string>
      
        > GET /.well-known/assetlinks.json HTTP/1.1
        > User-Agent: curl/7.35.0
        > Host: signin.example.com
      
        < HTTP/1.1 200 OK
        < Content-Type: application/json
      
  5. ऐप्लिकेशन को Google Play Store पर प्रकाशित करें. असोसिएशन को पाने के लिए, इसे सार्वजनिक चैनल में रिलीज़ करना ज़रूरी है.

  6. (ज़रूरी नहीं) पासवर्ड के लिए Smart Lock वाले सहयोगी फ़ॉर्म को भरें और सबमिट करें, ताकि यह बताया जा सके कि आप प्रोसेस पूरी कर चुके हैं. Google समय-समय पर यह जांच करता है कि फ़ॉर्म के ज़रिए सबमिट किए गए जुड़ाव वाकई में काम करते हैं या नहीं. अगर समस्याएं आने पर आपसे संपर्क किया जा सकता है.

पुष्टि होने के बाद, आपके ऐप्लिकेशन के उपयोगकर्ता या तो आपके ऐप्लिकेशन या वेबसाइट पर अपने क्रेडेंशियल सेव कर सकते हैं और अपने-आप साइन इन हो सकते हैं.

उदाहरण: किसी वेबसाइट के साथ एक से ज़्यादा ऐप्लिकेशन जोड़ना

आप डिजिटल एसेट लिंक फ़ाइल में हर ऐप्लिकेशन के बारे में जानकारी देकर, कई ऐप्लिकेशन को किसी वेबसाइट से जोड़ सकते हैं. उदाहरण के लिए, com.example और com.example.pro ऐप्लिकेशन को https://signin.example.com/ पर साइट से जोड़ने के लिए, https://signin.example.com/.well-known/assetlinks.json पर होस्ट की गई JSON फ़ाइल में दोनों ऐप्लिकेशन डालें:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

इसके बाद, दोनों ऐप्लिकेशन में असोसिएशन के बारे में बताएं:

  1. <application> के तहत मेनिफ़ेस्ट फ़ाइल में नीचे दी गई पंक्ति जोड़ें:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. strings.xml स्ट्रिंग में नीचे दिया गया स्ट्रिंग रिसॉर्स जोड़ें:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>
    

उदाहरण: ऐप्लिकेशन को एक से ज़्यादा वेबसाइटों के साथ जोड़ना

आप डिजिटल एसेट लिंक फ़ाइल में हर वेबसाइट के बारे में बताते हुए और हर वेबसाइट पर फ़ाइल होस्ट करके, ऐप्लिकेशन को कई वेबसाइटों के साथ जोड़ सकते हैं. उदाहरण के लिए, https://signin.example.com/ और https://m.example.com/ पर साइट के साथ com.example और com.example.pro ऐप्लिकेशन को जोड़ने के लिए, https://signin.example.com/.well-known/assetlinks.json पर होस्ट की गई JSON फ़ाइल में ऐप्लिकेशन और दोनों साइटों के बारे में बताएं:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

इसके बाद, https://m.example.com/.well-known/assetlinks.json पर होस्ट की गई JSON फ़ाइल में, प्राइमरी डिजिटल एसेट लिंक फ़ाइल शामिल करें:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

आखिर में, दोनों ऐप्लिकेशन में असोसिएशन के बारे में बताएं:

  1. <application> के तहत मेनिफ़ेस्ट फ़ाइल में नीचे दी गई पंक्ति जोड़ें:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. strings.xml स्ट्रिंग में नीचे दिया गया स्ट्रिंग रिसॉर्स जोड़ें:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>