کاربران ناشناس و ارتقا
کاربران را بدون صفحهی ورود شروع کنید، سپس Apple، Google یا ایمیل و رمز عبور را به همان شناسهی کاربر وصل کنید تا دادههایشان مال خودشان بماند. وقتی حساب از قبل گرفته شده چه میشود، و کاربران ناشناس رهاشده چطور پاک میشوند.
کاربر ناشناس یک کاربر واقعی Abrova Auth است که اطلاعات ورود خودش را ندارد: فقط دستگاهی که آن را ساخته نشستش را نگه میدارد. اپ شما میتواند بلافاصله با همهی محصولات ابرووا از آن استفاده کند و بعداً، بدون از دست رفتن چیزی، از کاربر بخواهد بهطور کامل وارد شود.
چرا با ناشناس شروع کنیم#
- بدون دیوار ورود. کاربر اول اپ شما را امتحان میکند. سندهای Sync، اتاقهای چت و تخصیصهای A/B test از همان ابتدا به یک شناسهی کاربر پایدار تعلق دارند.
- قوانین امنیتی از اولین صفحه.
auth.uidبرای کاربر ناشناس هم مقدار دارد، پس قوانینی مثلdata.ownerId === auth.uidدادههای او را از کاربران دیگر محافظت میکنند. - آزمایش برای بازدیدکنندگانِ واردنشده. Abrova A/B Testing برای هر کاربر به توکن کاربر نیاز دارد؛ کاربر ناشناس یکی دارد.
ساخت کاربر ناشناس#
ناشناس را در Abrova Auth › روشهای ورود روشن کنید، سپس:
if (AbrovaAuth.instance.currentUser == null) {
await AbrovaAuth.instance.signInAnonymously();
}اول بررسی کنید کاربر فعلی وجود دارد یا نه. SDK نشست ذخیرهشده را هنگام اجرا بازیابی میکند؛ صدا زدن signInAnonymously() در هر اجرا، هر بار یک کاربر جدید میسازد. ورود ناشناس را ببینید.
ارتقا: وصل کردن یک روش ورود#
وقتی کاربر آماده است حسابش را نگه دارد، یک روش را به کاربر ناشناسِ واردشده وصل کنید. شناسهی کاربر تغییر نمیکند، پس هر چه زیر آن ذخیره شده مال خودش میماند.
| فراخوانی | چه چیزی را وصل میکند |
|---|---|
| linkApple | ورود با Apple |
| linkGoogle | ورود با Google |
| linkPassword | یک آدرس ایمیل و رمز عبور |
try {
await AbrovaAuth.instance.linkGoogle(idToken: idToken, rawNonce: rawNonce);
// Same user id. currentUser.anonymous is now false.
} on AbrovaProviderAlreadyLinkedException {
// This Google account already belongs to another user.
}بعد از وصل کردن، کاربر میتواند روی هر دستگاهی با آن روش وارد شود و به همان حساب برسد. وصل کردن یک نشست تازه هم شروع میکند که SDK آن را در دست میگیرد.
وقتی حساب از قبل وجود دارد#
اگر حساب Apple یا Google از قبل متعلق به کاربر دیگری از پروژهی شما باشد، وصل کردن با PROVIDER_ALREADY_LINKED شکست میخورد (برای رمز عبور: EMAIL_TAKEN). هیچ چیز خودبهخود ادغام نمیشود: دادههای دو کاربر هرگز بیخبر از شما یکی نمیشوند.
کاری که بیشتر اپها میکنند:
- به کاربر بگویید این حساب از قبل وجود دارد.
- ورود به آن را پیشنهاد دهید. ورود معمولی (
signInWithGoogle) را صدا بزنید که جای نشست ناشناس را میگیرد. - اگر کاربر ناشناس دادهی ارزشمندی داشت، پیش از جابهجایی آن را در اپ خودتان به کاربرِ واردشده منتقل کنید، یا کنارش بگذارید.
صدا زدن یک روش ورود (نه روش link) وقتی کاربر ناشناسی وارد شده، دستگاه را به کاربر دیگر منتقل میکند. کاربر ناشناس حذف نمیشود، اما دیگر هیچ دستگاهی نشستش را ندارد، پس هرگز دوباره قابل دسترسی نیست. وقتی میخواهید شناسه بماند link کنید؛ وقتی حساب دیگر را میخواهید وارد شوید.
سقفها در برابر رباتها#
ورود ناشناس به هیچ اطلاعاتی نیاز ندارد، پس راحتترین روش برای سوءاستفاده است. Abrova Auth آن را از سه راه محدود میکند:
- برای هر آدرس دستگاه: هجوم کاربران ناشناس جدید از یک آدرس کُند میشود.
- برای هر پروژه در روز: تا ۲۰۰ کاربر ناشناس جدید در روز. میتوانید سقف کمتری در Abrova Auth › تنظیمات › کاربران ناشناس بگذارید.
- با عبور از سقف،
signInAnonymously()باRATE_LIMITEDشکست میخورد. کاربران موجود تأثیری نمیبینند.
پاکسازی کاربران ناشناس رهاشده#
کاربر ناشناسی که هرگز برنمیگردد، بعد از چند روز بدون ورود یا تمدید نشست حذف میشود: بهطور پیشفرض ۹۰ روز، قابل تنظیم از ۷ تا ۳٬۶۵۰ در Abrova Auth › تنظیمات › کاربران ناشناس. کاربرانی که یک روش را وصل کردهاند هرگز اینطور حذف نمیشوند.
پاکسازی فقط کاربر را از Abrova Auth حذف میکند. سندهای Sync، پیامهای Chat و دادههای دیگری که زیر آن شناسهی کاربر ذخیره شدهاند سر جایشان میمانند. اگر لازم است، در پاکسازی خودتان آنها را حذف کنید.