ورود خودکار را در بین برنامه‌ها و وب‌سایت‌ها فعال کنید

اگر برنامه شما که از Smart Lock برای گذرواژه‌ها استفاده می‌کند، پایگاه داده کاربر را با وب‌سایت شما به اشتراک می‌گذارد - یا اگر برنامه و وب‌سایت شما از ارائه‌دهندگان ورود به سیستم فدرال مانند Google Sign-In استفاده می‌کند، می‌توانید برنامه را با وب‌سایت مرتبط کنید تا کاربران اعتبار خود را ذخیره کنند. یک بار و سپس به طور خودکار به برنامه و وب سایت وارد شوید.

برای مرتبط کردن یک برنامه با یک وب‌سایت، با میزبانی فایل JSON پیوند دارایی دیجیتال در وب‌سایت خود و افزودن پیوندی به فایل پیوند دارایی دیجیتال به مانیفست برنامه خود، ارتباط را اعلام کنید.

با میزبانی یک بیانیه پیوندهای دارایی دیجیتال در وب‌سایت خود، همچنین به وب‌سایت خود امکان می‌دهید تا هنگام اجرا بر روی Android نسخه 8.0 و جدیدتر، داده‌های تکمیل خودکار را با برنامه شما به اشتراک بگذارد.

پیش نیازها

دامنه ورود به سیستم وب سایت شما باید از طریق HTTPS در دسترس باشد.

برنامه خود را با وب سایت خود مرتبط کنید

  1. یک فایل 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

    برای جزئیات به مرجع پیوندهای دارایی دیجیتال مراجعه کنید.

  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. ارتباط را در برنامه اندروید اعلام کنید.

    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 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"
    ]
  }
}]

سپس، ارتباط را در هر دو برنامه اعلام کنید:

  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>