ابرووا
شروع رایگان
☰ فهرست مستندات · کاربران و نشست‌ها

کاربران و نشست‌ها

کاربر Abrova Auth چیست، نشست چطور کار می‌کند (access token یک‌ساعته، refresh token چرخشی با تشخیص استفاده‌ی دوباره)، SDK چطور آن را تمدید می‌کند، و خروج، خروج از همه‌جا و غیرفعال کردن کاربر چطور آن را پایان می‌دهند.

به‌روزرسانی: ۵ آبان ۱۴۰۵
کاربران و نشست‌ها.

هر کاربر Abrova Auth متعلق به یک پروژه است و یک شناسه‌ی تصادفی دارد. نشست چیزی است که آن کاربر را روی یک دستگاه وارد نگه می‌دارد: یک access token کوتاه‌مدت برای محصولات ابرووا و یک refresh token بلندمدت که SDK آن را با access tokenهای جدید عوض می‌کند.

کاربران#

هر کاربر شناسه‌ای مثل ru_4fK9xQ2mB7nT1pLz8RcV3w دارد: ru_ و ۲۲ حرف و رقم تصادفی. شناسه هرگز ایمیل، شماره تلفن یا شناسه‌ی حساب Apple یا Google را در خود ندارد، پس ذخیره‌اش در داده‌هایتان و نمایشش در logها امن است.

  • هر پروژه، یک فهرست کاربر. یک شخص در دو پروژه‌ی شما، دو کاربر بی‌ارتباط است. کاربرِ یک پروژه هرگز نمی‌تواند به پروژه‌ی دیگر وارد شود.
  • چند راه ورود، یک کاربر. کاربر می‌تواند بیش از یک روش ورود وصل‌شده داشته باشد (مثلاً اول ناشناس، بعد Apple، بعد رمز عبور). شناسه همان می‌ماند. کاربران ناشناس و ارتقا را ببینید.
  • بدون ادغام خودکار بر اساس ایمیل. یک حساب Apple و یک حساب Google با ایمیل یکسان دو کاربرند، مگر اینکه کاربر عمداً آن‌ها را به هم وصل کند. ادغام بر اساس ایمیل یک روش شناخته‌شده برای تصاحب حساب‌هاست.

SDKها کاربر را به این شکل برمی‌گردانند:

فیلدمعنا
idشناسه‌ی کاربر (ru_...). همه‌جای اپ از آن به‌عنوان شناسه‌ی کاربر استفاده کنید.
anonymousتا وقتی کاربر Apple، Google یا رمز عبور را وصل نکرده، true است.
emailVerifiedوقتی کاربر مالکیت آدرس ایمیل را ثابت کرده باشد true است (لینک تأیید، لینک یک‌بارمصرف، بازیابی رمز عبور، یا ایمیل تأییدشده‌ی Google).
createdAtزمان ساخت کاربر.
providersروش‌های ورود وصل‌شده، مثلاً apple، google، password.

نشست‌ها#

هر ورود یک نشست روی آن دستگاه شروع می‌کند. هر نشست دو توکن دارد:

access tokenrefresh token
چیستتوکن کاربر ابرووا (یک JWT امضاشده)یک مقدار تصادفی که به‌تنهایی معنایی ندارد
طول عمریک ساعت۶۰ روز از آخرین استفاده، حداکثر یک سال از زمان ورود
نگه‌داری روی دستگاهدر حافظهدر حافظه‌ی امن (Keychain، حافظه‌ی متکی به Android Keystore، یا هر چه روی وب انتخاب کنید)
نگه‌داری در ابروواهیچ: با امضایش بررسی می‌شودفقط هش آن
فرستاده می‌شود بههمه‌ی محصولات ابرووافقط Abrova Auth

کاربری که دست‌کم هر ۶۰ روز یک بار اپ را باز کند، تا یک سال وارد می‌ماند. بعد از یک سال، یا بعد از ۶۰ روز بدون باز کردن اپ، کاربر دوباره وارد می‌شود.

access token

access token همان توکن کاربر ابرووا استاندارد است. Abrova Sync، Chat، Push، A/B Testing و Storage امضای آن را بررسی می‌کنند و کاربر را از آن می‌خوانند، پس هرگز لازم نیست خودتان شناسه‌ی کاربر را به آن‌ها بدهید. این توکن شامل این‌هاست:

Claimمقدار
subشناسه‌ی کاربر (ru_...). این همان auth.uid در قوانین امنیتی Sync است.
pidپروژه‌ی شما. توکنِ پروژه‌ی دیگر همه‌جا رد می‌شود.
expیک ساعت بعد از صدور.
amrکاربر چطور وارد شده: anonymous، apple، google، password، magic_link یا telegram.

تمدید

تمدید توکن‌ها کار شما نیست. SDK access token را نگه می‌دارد و وقتی یک SDK ابرووا (یا کد شما) آن را بخواهد، اگر بیش از ۲ دقیقه از اعتبارش مانده باشد همان را برمی‌گرداند و در غیر این صورت تمدیدش می‌کند. چند درخواست‌کننده که هم‌زمان آن را بخواهند، در یک تمدید شریک می‌شوند.

چرخش و تشخیص استفاده‌ی دوباره.

هر تمدید یک refresh token جدید برمی‌گرداند و قبلی را بازنشسته می‌کند. اگر یک refresh token بازنشسته دوباره استفاده شود، یعنی کسی آن را کپی کرده است: Abrova Auth فوراً کل آن نشست را پایان می‌دهد و آن را در گزارش فعالیت ثبت می‌کند. کاربر واقعی فقط دوباره وارد می‌شود؛ نسخه‌ی کپی‌شده از کار می‌افتد. تمدیدهای هم‌زمان از یک اپ به‌طور امن مدیریت می‌شوند.

آفلاین و خطاهای شبکه

خطای شبکه هرگز کاربر را خارج نمی‌کند. SDK نشست را نگه می‌دارد و در درخواست بعدی دوباره تلاش می‌کند. کاربر فقط وقتی خارج می‌شود که Abrova Auth بگوید نشست تمام شده است.

پایان دادن به نشست#

چه اتفاقی می‌افتدنتیجه
signOut()نشست را روی این دستگاه پایان می‌دهد. هرگز شکست نمی‌خورد: دستگاه نشست را فراموش می‌کند، حتی وقتی آفلاین است.
signOutEverywhere()همه‌ی نشست‌های کاربر را روی همه‌ی دستگاه‌ها پایان می‌دهد.
deleteAccount()کاربر و همه‌ی نشست‌هایش را حذف می‌کند. امنیت و داده‌ها را ببینید.
بازیابی رمز عبورهمه‌ی نشست‌های کاربر را پایان می‌دهد. کاربر با رمز عبور جدید وارد می‌شود.
غیرفعال کردن کاربر در کنسولهمه‌ی نشست‌ها را پایان می‌دهد. ورود و تمدید تا وقتی کاربر را دوباره فعال نکنید USER_DISABLED برمی‌گردانند.
استفاده از refresh token کپی‌شدهآن نشست را پایان می‌دهد (تشخیص استفاده‌ی دوباره).
۶۰ روز بدون استفاده، یا یک سال عمرنشست منقضی می‌شود. تمدید بعدی SESSION_EXPIRED برمی‌گرداند.

وقتی نشستی روی سرور پایان می‌یابد، SDK روی آن دستگاه در تمدید بعدی متوجه می‌شود، نشست را پاک می‌کند و به listener وضعیت ورود شما خبر می‌دهد (کاربر null می‌شود).

تا یک ساعت.

access tokenها با امضایشان بررسی می‌شوند، نه با جستجو. access tokenی که پیش از خروج از همه‌جا، غیرفعال‌سازی یا حذف صادر شده، در محصولات دیگر ابرووا تا زمان انقضا، حداکثر یک ساعت بعد، کار می‌کند. تمدید آن فوراً رد می‌شود، پس قابل تمدید نیست.

در کنسول#

Abrova Auth › کاربران فهرست کاربران پروژه را همراه روش‌های ورود، زمان ساخت و آخرین فعالیت‌شان نشان می‌دهد. از همان‌جا می‌توانید کاربری را غیرفعال یا فعال کنید، او را از همه‌جا خارج کنید، یا حذفش کنید.

این صفحه مفید بود؟
گزارش مشکل