تفعيل تسجيل الدخول التلقائي على جميع التطبيقات والمواقع الإلكترونية

إذا كان تطبيقك الذي يستخدم Smart Lock لكلمات المرور يشارك قاعدة بيانات المستخدم مع موقعك الإلكتروني، أو إذا كان تطبيقك وموقعك الإلكتروني يستخدمان مزودي خدمة تسجيل الدخول الموحّد مثل تسجيل الدخول بحساب Google، يمكنك ربط التطبيق بموقع الويب حتى يتمكن المستخدمون من حفظ بيانات الاعتماد الخاصة بهم مرة واحدة ثم تسجيل الدخول تلقائيًا إلى كل من التطبيق والموقع الإلكتروني.

لربط تطبيق بموقع إلكتروني، يجب تعريف عمليات الربط من خلال استضافة ملف JSON لروابط التنقل إلى مواد العرض الرقمية على موقعك الإلكتروني، وإضافة رابط إلى ملف رابط التنقل إلى مواد العرض الرقمية في بيان التطبيق.

من خلال استضافة بيان "روابط مواد العرض الرقمية" على موقعك الإلكتروني، يتم أيضًا السماح لموقعك الإلكتروني بمشاركة بيانات الملء التلقائي مع تطبيقك عند تشغيله على الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث.

المتطلبات الأساسية

يجب أن يكون نطاق تسجيل الدخول إلى موقعك الإلكتروني متاحًا عبر HTTPS.

ربط تطبيقك بموقعك الإلكتروني

  1. أنشِئ ملف Digital Asset Links بتنسيق JSON.

    على سبيل المثال، للتوضيح بأنّه يمكن للموقع الإلكتروني 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

    عنوان URL للموقع الإلكتروني بالتنسيق https://domain[:optional_port]، على سبيل المثال، https://www.example.com.

    يجب أن تكون domain مؤهَّلة بالكامل، ويجب حذف optional_port عند استخدام المنفذ 443 مع HTTPS.

    يمكن أن يكون هدف site نطاقًا جذريًا فقط، ولا يمكنك حصر عملية ربط التطبيق بدليل فرعي محدّد. ولا تضمِّن مسارًا في عنوان URL، مثل الشرطة المائلة اللاحقة.

    لا تُعتبر النطاقات الفرعية مطابقة: أي إذا حدّدت 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. استضِف ملف Digital Assets Link بتنسيق 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. أضِف مورد سلسلة 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
      
  5. انشر التطبيق في "متجر Google Play". يجب إصداره في القناة العامة لكي يتم اختيار الروابط.

  6. (اختياري) أكمِل نموذج الارتباط في Smart Lock لكلمات المرور وأرسِله للإشارة إلى أنّك أجريت العملية. تتحقّق Google بشكل دوري مما إذا كانت الارتباطات التي يتم إرسالها من خلال النموذج تعمل فعلاً، وقد تتواصل معك في حال حدوث مشاكل.

عند اكتمال عملية إثبات الملكية، سيتمكّن مستخدمو تطبيقك من حفظ بيانات الاعتماد الخاصة بهم على تطبيقك أو على موقعك الإلكتروني وتسجيل الدخول تلقائيًا إلىهما.

مثال: ربط تطبيقات متعددة بموقع إلكتروني

يمكنك ربط تطبيقات متعددة بموقع إلكتروني عن طريق تحديد كل تطبيق في ملف Digital Assets Link (رابط الأصول الرقمية). على سبيل المثال، لربط التطبيقَين com.example وcom.example.pro بالموقع الإلكتروني على https://signin.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": "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/، حدِّد كلا التطبيقَين والموقعَين الإلكترونيَّين في ملف 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"
}]

وأخيرًا، يمكنك الإعلان عن عملية الربط في كلا التطبيقين:

  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>