هنگام راه‌اندازی دستگاه جدید، اعتبار برنامه را بازیابی کنید

ویژگی بازیابی اعتبارنامه مدیر اعتبار به کاربران این امکان را می دهد که هنگام راه اندازی یک دستگاه جدید، حساب های برنامه خود را بازیابی کنند. این API در پیش‌نمایش برنامه‌نویس است و در همه دستگاه‌هایی که دارای Android 9 یا بالاتر و خدمات Google Play (GMS) Core نسخه 242200000 یا بالاتر هستند در دسترس است. مزایای ویژگی Restore Credentials عبارتند از:

  • تجربه کاربری یکپارچه : کاربران می توانند حساب برنامه خود را بدون نیاز به ورود دستی به هر برنامه جداگانه بازیابی کنند.
  • افزایش تعامل کاربر : اگر کاربران بتوانند هنگام راه‌اندازی دستگاه جدید حساب خود را بازیابی کنند، احتمالاً به استفاده از برنامه شما ادامه خواهند داد.
  • کاهش تلاش برای توسعه : ویژگی Restore Credentials با Credential Manager یکپارچه شده است، بنابراین توسعه دهندگانی که قبلاً از کلیدهای عبور پشتیبانی می کنند می توانند قابلیت های بازیابی اعتبار را اضافه کنند.

چگونه کار می کند

می توانید از Restore Credentials برای ایجاد، دریافت و پاک کردن اعتبارنامه های مربوطه استفاده کنید.

  1. ایجاد اعتبار بازیابی : هنگامی که کاربر به برنامه شما وارد می شود، یک اعتبار بازیابی مرتبط با حساب او ایجاد کنید. اگر کاربر پشتیبان‌گیری Google را فعال کرده باشد، این اعتبار به صورت محلی ذخیره می‌شود و با ابر همگام‌سازی می‌شود و رمزگذاری سرتاسر در دسترس است (برنامه‌ها می‌توانند از همگام‌سازی با ابر انصراف دهند)
  2. دریافت بازیابی اعتبار : وقتی کاربر دستگاه جدیدی را راه‌اندازی می‌کند، برنامه شما می‌تواند از مدیر اعتبارنامه بازیابی اعتبارنامه را درخواست کند. این به شما امکان می دهد کاربر را به طور خودکار بدون نیاز به ورودی اضافی وارد سیستم کنید.
  3. پاک کردن اعتبار بازیابی : وقتی کاربر از برنامه شما خارج شد، باید اعتبار بازیابی مرتبط را حذف کنید.

ویژگی Restore Credentials می تواند به راحتی با سیستم های Backend که قبلاً کلیدهای عبور را پیاده سازی کرده اند، یکپارچه شود. این سازگاری از این واقعیت ناشی می شود که هم کلیدهای عبور و هم کلیدهای بازیابی (نوع اعتبار مورد استفاده در ویژگی Restore Credentials) از مشخصات فنی زیرین یکسانی پیروی می کنند. این هم‌ترازی تضمین می‌کند که فرآیند بازیابی اعتبارنامه‌ها می‌تواند به طور موثر اعتبار کاربری ذخیره‌شده در سیستم‌های دارای کلید عبور را بازیابی و بازیابی کند و تجربه‌ای سازگار و کاربرپسند را در پلتفرم‌های مختلف و روش‌های احراز هویت ارائه دهد.

برگه پایینی مدیر اعتبارنامه
شکل 1. نموداری که بازیابی داده های یک برنامه را به دستگاه جدید با استفاده از یک اعتبار بازیابی، از جمله ایجاد اعتبار، شروع جریان بازیابی و ورود خودکار کاربر نشان می دهد.

پیاده سازی

Restore Credentials API از طریق کتابخانه Credential Manager Jetpack در دسترس است. برای شروع، مراحل زیر را دنبال کنید:

  1. وابستگی Credential Manager را به پروژه خود اضافه کنید.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. یک شی CreateRestoreCredentialRequest ایجاد کنید.

  3. متد createCredential() را در شی CredentialManager فراخوانی کنید.

    val credentialManager = CredentialManager.create(context)
    
    // On a successful authentication create a Restore Key
    // Pass in the context and CreateRestoreCredentialRequest object
    val response = credentialManager.createCredential(context, createRestoreRequest)
    

    این اعتبار بازیابی ایجاد شده یک نوع اعتبار webauthn است و به عنوان کلید بازیابی شناخته می شود.

  4. هنگامی که کاربر یک دستگاه جدید را راه اندازی می کند، متد getCredential() را در شی CredentialManager فراخوانی کنید.

    // Fetch the Authentication JSON from server
    val authenticationJson = ...
    
    // Create the GetRestoreCredentialRequest object
    val options = GetRestoreCredentialOption(authenticationJson)
    val getRequest = GetCredentialRequest(Immutablelist.of(options))
    
    // The restore key can be fetched in two scenarios to
    // 1. On the first launch of app on the device, fetch the Restore Key
    // 2. In the onRestore callback (if the app implements the Backup Agent)
    val response = credentialManager.getCredential(context, getRequest)
    
  5. هنگامی که کاربر از برنامه شما خارج شد، متد clearCredentialState() را در شی CredentialManager فراخوانی کنید.

    // Create a ClearCredentialStateRequest object
    val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL)
    
    // On user log-out, clear the restore key
    val response = credentialManager.clearCredentialState(clearRequest)
    

اگر از یک عامل پشتیبان استفاده می کنید، قسمت getCredential را در پاسخ به تماس onRestore انجام دهید. این تضمین می کند که اعتبار برنامه بلافاصله پس از بازیابی اطلاعات برنامه بازیابی می شود.