برای ادغام Smart Lock for Passwords در برنامه Android خود، باید تماسهایی را به Credentials API به جریان راهاندازی و ورود به برنامه خود اضافه کنید. نمودار زیر جریان یک برنامه معمولی اندروید را نشان می دهد که از Smart Lock برای رمز عبور استفاده می کند.
در حالی که راههای زیادی برای ادغام موفقیتآمیز Smart Lock برای گذرواژهها وجود دارد، و ویژگیهای یکپارچهسازی به ساختار و تجربه کاربری برنامه بستگی دارد، جریان زیر برای اکثر برنامهها توصیه میشود. برنامه هایی که از این جریان استفاده می کنند دارای مزایای تجربه کاربری زیر هستند:
- کاربران موجود سرویس شما که دارای یک اعتبارنامه ذخیره شده هستند، بلافاصله وارد سیستم می شوند و با باز کردن برنامه، مستقیماً به نمای ورود به سیستم می روند.
- کاربرانی که چندین اعتبار ذخیره شده دارند یا ورود به سیستم خودکار را غیرفعال کرده اند، باید قبل از رفتن به نمای ورود به سیستم برنامه، فقط به یک گفتگو پاسخ دهند.
- کاربرانی که هیچ اطلاعات کاربری ذخیرهشدهای ندارند یا هنوز ثبتنام نکردهاند، میتوانند با یک ضربه نام و ایمیل خود را انتخاب کنند و با این اطلاعات از قبل پر شده، هوشمندانه به نمای ورود یا ثبتنام ارسال شوند.
- وقتی کاربران از سیستم خارج میشوند، برنامه مطمئن میشود که بهطور خودکار دوباره وارد سیستم نمیشوند.
بازیابی اعتبار
- هنگامی که برنامه شروع به کار کرد، اگر هیچ کاربری از قبل وارد سیستم نشده است، با
CredentialsClient.request()
تماس بگیرید. - اگر
Task
موفقیت آمیز بود، اعتبار کاربر را باgetResult().getCredential()
دریافت کنید و از آنها برای ورود به سیستم استفاده کنید. - اگر
Task
ناموفق باشد و استثنا نمونهای ازResolvableApiException
باشد وgetStatusCode()
RESOLUTION_REQUIRED
را برمیگرداند، ورودی کاربر برای انتخاب یک اعتبار مورد نیاز است. باstartResolutionForResult()
تماس بگیرید تا از کاربر بخواهد یک حساب ذخیره شده را انتخاب کند، سپسgetParcelableExtra(Credential.EXTRA_KEY)
برای دریافت اعتبار کاربر و استفاده از آنها برای ورود به سیستم تماس بگیرید.
ذخیره اعتبار
اگر
Task
با یکApiException
ناموفق باشد وgetStatusCode()
SIGN_IN_REQUIRED
را برمی گرداند، کاربر هیچ اعتبارنامه ذخیره شده ای ندارد و باید با استفاده از جریان ورود یا ثبت نام فعلی شما وارد یا ثبت نام کند. پس از اینکه کاربر با موفقیت ورود به سیستم را تکمیل کرد، می توانید فرصتی را برای کاربر فراهم کنید تا اعتبار خود را برای بازیابی در آینده ذخیره کند (مرحله 5).میتوانید با بازیابی نکات ورود به سیستم، مانند آدرس ایمیل کاربر، به کاربر کمک کنید سریعتر و راحتتر وارد سیستم یا ثبتنام شود. کاربر می تواند راهنمایی را انتخاب کرده و از تایپ اعتبار خود صرف نظر کند. اگر برنامه شما از کاربران می خواهد که وارد سیستم شوند، ممکن است بلافاصله پس از شکست درخواست اعتبارنامه اولیه، نکات را بازیابی کنید (در غیر این صورت، می توانید منتظر بمانید تا کاربر جریان ورود به سیستم یا ثبت نام را شروع کند).
-
CredentialsClient.getHintPickerIntent()
را فراخوانی کنید و intent را برای درخواست از کاربر برای انتخاب یک حساب شروع کنید، سپسgetParcelableExtra(Credential.EXTRA_KEY)
برای دریافت راهنمایی ورود به سیستم فراخوانی کنید. - اگر شناسه کاربری راهنمایی با کاربر موجود مطابقت دارد، فرم ورود به سیستم را از قبل با آن پر کنید و به کاربر اجازه دهید رمز ورود را وارد کند.
- اگر شناسه کاربری راهنمایی با کاربر موجود مطابقت ندارد، فرم ثبت نام را با شناسه و نام کاربر از قبل پر کنید و به کاربر اجازه دهید یک حساب کاربری جدید ایجاد کند.
-
پس از اینکه کاربر با موفقیت وارد سیستم شد یا یک حساب ایجاد کرد، شناسه کاربری و رمز عبور را با
CredentialsClient.save()
ذخیره کنید.اگر کاربر با یک ارائه دهنده هویت فدرال مانند Google Sign-In وارد شده است، شی
Credential
را با آدرس ایمیل کاربر به عنوان شناسه ایجاد کنید و ارائه دهنده هویت را باsetAccountType
مشخص کنید.
خروج از سیستم
- هنگامی که کاربر از سیستم خارج میشود، با
CredentialsClient.disableAutoSignIn()
تماس بگیرید تا از ورود سریع کاربر به سیستم جلوگیری کنید. غیرفعال کردن ورود به سیستم خودکار همچنین کاربران را قادر میسازد تا به راحتی بین حسابها جابهجا شوند - به عنوان مثال، بین حسابهای کاری و شخصی، یا بین حسابها در دستگاههای مشترک—بدون نیاز به وارد کردن مجدد اطلاعات ورود به سیستم.
آیا برای ادغام Smart Lock برای رمزهای عبور در برنامه خود آماده هستید؟ شروع کنید .