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

अगर पासवर्ड के लिए 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 है, तो JSON फ़ाइल को https://signin.example.com/.well-known/assetlinks.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>
    

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

हर वेबसाइट के लिए डिजिटल एसेट लिंक फ़ाइल में जानकारी देकर और उस फ़ाइल को हर वेबसाइट पर होस्ट करके, ऐप्लिकेशन को एक से ज़्यादा वेबसाइटों से जोड़ा जा सकता है. उदाहरण के लिए, com.example और com.example.pro ऐप्लिकेशन को https://signin.example.com/ और https://m.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": "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>