अगर पासवर्ड के लिए Smart Lock का इस्तेमाल करने वाला आपका ऐप्लिकेशन, आपकी वेबसाइट के साथ उपयोगकर्ता का डेटाबेस शेयर करता है या अगर आपका ऐप्लिकेशन और वेबसाइट, 'Google साइन-इन' जैसी फ़ेडरेटेड साइन-इन की सेवा देने वाली किसी कंपनी का इस्तेमाल करती है, तो आप ऐप्लिकेशन को वेबसाइट से जोड़ सकते हैं. इससे उपयोगकर्ता अपने क्रेडेंशियल एक बार सेव कर सकेंगे. इसके बाद, वे ऐप्लिकेशन और वेबसाइट, दोनों में अपने-आप साइन इन हो जाएंगे.
किसी ऐप्लिकेशन को वेबसाइट से जोड़ने के लिए, अपनी वेबसाइट पर डिजिटल एसेट लिंक JSON फ़ाइल होस्ट करके और अपने ऐप्लिकेशन के मेनिफ़ेस्ट में डिजिटल एसेट लिंक फ़ाइल का लिंक जोड़कर, असोसिएशन के बारे में जानकारी दें.
अपनी वेबसाइट पर डिजिटल एसेट लिंक के एलान को होस्ट करके, आप Android 8.0 और उसके बाद के वर्शन पर चलाते समय, अपनी वेबसाइट को अपने ऐप्लिकेशन के साथ डेटा ऑटोमैटिक भरने की सुविधा भी शेयर करने की सुविधा देते हैं.
ज़रूरी शर्तें
आपकी वेबसाइट का साइन-इन डोमेन, एचटीटीपीएस के ज़रिए उपलब्ध होना चाहिए.
अपने ऐप्लिकेशन को अपनी वेबसाइट से जोड़ना
डिजिटल एसेट लिंक 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
ज़्यादा जानकारी के लिए, डिजिटल एसेट लिंक का रेफ़रंस देखें.
साइन इन डोमेन में इस जगह पर डिजिटल एसेट लिंक 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
हेडर भेजता है.पक्का करें कि आपका होस्ट, Google को आपकी डिजिटल एसेट लिंक फ़ाइल वापस पाने की अनुमति देता है. अगर आपके पास
robots.txt
फ़ाइल है, तो इससे Googlebot एजेंट को/.well-known/assetlinks.json
की जानकारी वापस पाने की अनुमति देनी होगी. ज़्यादातर साइटें किसी भी ऑटोमेटेड एजेंट को/.well-known/
पाथ में फ़ाइलें पाने की अनुमति दे सकती हैं, ताकि दूसरी सेवाएं उन फ़ाइलों के मेटाडेटा को ऐक्सेस कर सकें:User-agent: * Allow: /.well-known/
Android ऐप्लिकेशन में असोसिएशन का एलान करें.
मेनिफ़ेस्ट फ़ाइल में,
<application>
के तहत यह लाइन जोड़ें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
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
ऐप्लिकेशन को Google Play Store पर पब्लिश करें. इसे सार्वजनिक चैनल पर रिलीज़ करना होगा, ताकि असोसिएशन उसे इस्तेमाल कर सके.
(ज़रूरी नहीं) यह बताने के लिए कि आपने इस प्रक्रिया को पूरा कर लिया है, पासवर्ड के लिए 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"
]
}
}]
इसके बाद, दोनों ऐप्लिकेशन में असोसिएशन का एलान करें:
मेनिफ़ेस्ट फ़ाइल में,
<application>
के तहत यह लाइन जोड़ें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
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"
}]
आखिर में, दोनों ऐप्लिकेशन में असोसिएशन का एलान करें:
मेनिफ़ेस्ट फ़ाइल में,
<application>
के तहत यह लाइन जोड़ें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
फ़ाइल में, नीचे दिए गए स्ट्रिंग रिसॉर्स जोड़ें:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>