اگر برنامه شما که از 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
یک شی است که دارایی را مشخص می کند که اظهارنامه برای آن اعمال می شود. فیلدهای زیر یک وب سایت را مشخص می کند:namespace
web
site
آدرس وب سایت، با فرمت
https:// domain [: optional_port ]
; به عنوان مثال،https://www.example.com
.domain باید کاملاً واجد شرایط باشد. و optional_port باید هنگام استفاده از پورت 443 برای HTTPS حذف شود.
هدف
site
فقط می تواند یک دامنه ریشه باشد: شما نمی توانید یک انجمن برنامه را به یک زیر شاخه خاص محدود کنید. مسیری را در URL وارد نکنید، مانند یک اسلش انتهایی.دامنههای فرعی مطابق در نظر گرفته نمیشوند: یعنی اگر domain به عنوان
www.example.com
مشخص کنید، دامنهwww.counter.example.com
با برنامه شما مرتبط نیست.فیلدهای زیر یک برنامه اندروید را مشخص می کند:
namespace
android_app
package_name
نام بسته اعلام شده در مانیفست برنامه. برای مثال com.example.android
sha256_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>