اگر برنامه شما که از Smart Lock برای گذرواژهها استفاده میکند، پایگاه داده کاربر را با وبسایت شما به اشتراک میگذارد - یا اگر برنامه و وبسایت شما از ارائهدهندگان ورود به سیستم فدرال مانند Google Sign-In استفاده میکند، میتوانید برنامه را با وبسایت مرتبط کنید تا کاربران اعتبار خود را ذخیره کنند. یک بار و سپس به طور خودکار به برنامه و وب سایت وارد شوید.
برای مرتبط کردن یک برنامه با یک وبسایت، با میزبانی فایل JSON پیوند دارایی دیجیتال در وبسایت خود و افزودن پیوندی به فایل پیوند دارایی دیجیتال به مانیفست برنامه خود، ارتباط را اعلام کنید.
با میزبانی یک بیانیه پیوندهای دارایی دیجیتال در وبسایت خود، همچنین به وبسایت خود امکان میدهید تا هنگام اجرا بر روی Android نسخه 8.0 و جدیدتر، دادههای تکمیل خودکار را با برنامه شما به اشتراک بگذارد.
پیش نیازها
دامنه ورود به سیستم وب سایت شما باید از طریق HTTPS در دسترس باشد.
برنامه خود را با وب سایت خود مرتبط کنید
یک فایل JSON Links دارایی دیجیتال ایجاد کنید.
برای مثال، برای اعلام اینکه وبسایت
https://signin.example.comو یک برنامه Android با نام بستهcom.exampleمیتوانند اعتبار ورود به سیستم را به اشتراک بگذارند، فایلی به نام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یک شی است که دارایی را مشخص می کند که اظهارنامه برای آن اعمال می شود. فیلدهای زیر یک وب سایت را مشخص می کند:namespacewebsiteآدرس وب سایت، با فرمت
https:// domain [: optional_port ]; به عنوان مثال،https://www.example.com.domain باید کاملاً واجد شرایط باشد. و optional_port باید هنگام استفاده از پورت 443 برای HTTPS حذف شود.
هدف
siteفقط می تواند یک دامنه ریشه باشد: شما نمی توانید یک انجمن برنامه را به یک زیر شاخه خاص محدود کنید. مسیری را در URL وارد نکنید، مانند یک اسلش انتهایی.دامنههای فرعی مطابق در نظر گرفته نمیشوند: یعنی اگر domain به عنوان
www.example.comمشخص کنید، دامنهwww.counter.example.comبا برنامه شما مرتبط نیست.فیلدهای زیر یک برنامه اندروید را مشخص می کند:
namespaceandroid_apppackage_nameنام بسته اعلام شده در مانیفست برنامه. برای مثال com.example.androidsha256_cert_fingerprintsاثر انگشت SHA256 گواهی امضای برنامه شما. برای ایجاد اثر انگشت می توانید از دستور زیر استفاده کنید: $ keytool -list -v -keystore my-release-key.keystore
برای جزئیات به مرجع پیوندهای دارایی دیجیتال مراجعه کنید.
فایل JSON Link Assets Digital را در مکان زیر در دامنه ورود میزبانی کنید:
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/
ارتباط را در برنامه اندروید اعلام کنید.
خط زیر را به فایل مانیفست زیر
<application>اضافه کنید:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />یک منبع رشته
asset_statementsرا به فایلstrings.xmlاضافه کنید. رشته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 منتشر کنید. باید در کانال عمومی منتشر شود تا انجمن ها برداشت شوند.
(اختیاری) فرم وابستگی Smart Lock for Passwords را تکمیل و ارسال کنید تا نشان دهید که این فرآیند را طی کرده اید. Google به طور دوره ای بررسی می کند که آیا وابستگی های ارسال شده از طریق فرم واقعاً کار می کنند یا خیر و ممکن است در صورت بروز مشکل با شما تماس بگیرد.
پس از تکمیل تأیید، کاربران برنامه شما میتوانند اطلاعات کاربری خود را در برنامه یا وبسایت شما ذخیره کنند و بهطور خودکار به هر دو وارد شوند.
مثال: چندین برنامه را با یک وب سایت مرتبط کنید
میتوانید با مشخص کردن هر برنامه در فایل پیوند داراییهای دیجیتال، چندین برنامه را با یک وبسایت مرتبط کنید. برای مثال، برای مرتبط کردن برنامههای com.example و com.example.pro با سایت https://signin.example.com/ ، هر دو برنامه را در فایل JSON که در https://signin.example.com/.well-known/assetlinks.json میزبانی میشود، مشخص کنید. https://signin.example.com/.well-known/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": "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/ ، هر دو برنامه و هر دو سایت را در فایل JSON میزبانی شده در https://signin.example.com/.well-known/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": "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"
]
}
}]
سپس، در فایل JSON که در https://m.example.com/.well-known/assetlinks.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>