معرفی و شروع سریع
Abrova Auth کاربران اپ شما را وارد میکند — ناشناس، ایمیل و رمز عبور، لینک یکبارمصرف، کد تلگرام، Apple و Google — فقط با کلید عمومی و بدون سرور. ۱٬۰۰۰ کاربر فعال ماهانه رایگان در هر ماه.
با Abrova Auth کاربران اپ شما بدون سرورِ خودتان وارد میشوند. اپ با کلید API عمومیاش SDK را صدا میزند؛ ابرووا اطلاعات ورود را بررسی میکند، نشست را نگه میدارد و یک توکن کاربر به اپ میدهد. این همان توکن کاربر ابرووا است: ابرووا تریس از همین امروز میتواند کاربرِ واردشده را به خطاها وصل کند، و Sync، Chat، Push، Storage و A/B Testing هم وقتی راه بیفتند همین توکن را میپذیرند؛ به این ترتیب قوانین امنیتیشان میدانند کاربر کیست (auth.uid) بیآنکه سرور شما چیزی بسازد.
فقط کلید API عمومی. هیچ چیز محرمانهای داخل اپ شما نمیرود
ناشناس، ایمیل و رمز عبور، لینک یکبارمصرف، کد تلگرام، Apple و Google
همان شناسهی کاربر امروز در ابرووا تریس، و در محصولات دیگر ابرووا وقتی راه بیفتند
ناشناس شروع کنید و بعداً رمز عبور، Apple یا Google را وصل کنید: همان شناسهی کاربر
access token یکساعته و refresh token چرخشی که SDK خودش تمدید میکند
با یک فراخوانی، همانطور که App Store برای اپهای دارای ورود میخواهد
ناشناس، ایمیل و رمز عبور، لینک یکبارمصرف و کد تلگرام را در اولویت بگذارید. ورود با Apple و Google به اتصال به Apple یا Google (و در Android به Google Play services) نیاز دارد که بعضی کاربران در ایران ندارند. آنها را ارائه کنید، اما تنها راه ورود نباشند.
از دستیار هوش مصنوعی استفاده میکنید؟ این صفحه را با Copy page for AI به آن بدهید، یا همهی مستندات را بهصورت متن ساده از /docs/llms.txt بگیرید. دستیارهای هوش مصنوعی را ببینید.
SDKهای موجود#
همهی پکیجها از Abrova Center (center.abrova.ir) میآیند؛ SDK iOS با Swift Package Manager از GitHub نصب میشود.
| پلتفرم | پکیج | مستندات |
|---|---|---|
| Flutter | abrova_auth | SDK Flutter |
| iOS | AbrovaAuth (Swift Package Manager) | SDK iOS |
| Android | ir.abrova:abrova-auth | SDK Android |
| Web | @abrova/auth-web | SDK Web |
| React Native | @abrova/auth-react-native | SDK React Native |
هر پنج SDK همان فراخوانیها را با نامگذاری مخصوص هر پلتفرم دارند. Abrova Auth برای اپهاست: SDK سرور ندارد و نیازی هم به آن نیست.
Abrova Auth را روشن کنید#
- در کنسول ابرووا، تنظیمات › محصولات پروژه را باز کنید و Abrova Auth را روشن کنید.
- Abrova Auth › روشهای ورود را باز کنید و روشهایی را که اپ شما ارائه میدهد روشن کنید: ناشناس، ایمیل و رمز عبور، لینک یکبارمصرف، کد تلگرام، Apple و Google. همهی روشها تا وقتی روشنشان نکنید خاموشاند.
- برای Apple و Google، شناسههای اپ را در همان صفحه اضافه کنید. برای لینکهای ایمیلی، آدرسهای لینک را در Abrova Auth › تنظیمات اضافه کنید. برای تلگرام، رباتتان را وصل کنید. صفحهی هر روش میگوید به چه چیزی نیاز دارد.
کلیدها#
Abrova Auth فقط به کلید API عمومی پروژه (ab_live_...) نیاز دارد که در Abrova Auth › راهاندازی نمایش داده میشود. قرار دادنش در اپ امن است: فقط پروژه را مشخص میکند و نمیتواند به جای هیچ کاربری عمل کند.
| اعتبارنامه | کجا نگهداری میشود | چه چیزی را ثابت میکند |
|---|---|---|
کلید API (ab_live_…) | اپ شما، عمومی | کدام پروژه |
| access token (یک ساعت) | حافظهی دستگاه | کدام کاربر وارد شده است |
| refresh token | حافظهی امن دستگاه | اینکه این دستگاه اجازه دارد access token جدید بگیرد |
SDK هر دو توکن را برای شما نگه میدارد. هیچوقت لازم نیست خودتان با refresh token کار کنید.
Abrova Auth از کلید سرور (ab_srv_...) استفاده نمیکند. آن را فقط روی سرور خودتان نگه دارید، بیرون از اپها و bundleهای مرورگر.
نصب و ورود#
کوتاهترین مسیر، کاربر ناشناس است: بدون صفحه، با یک فراخوانی. اول ناشناس را در کنسول روشن کنید.
پکیج را با رجیستری ابرووا بهعنوان منبع اضافه کنید:
dependencies: abrova_auth: hosted: https://center.abrova.ir/api/packages/abrova/pub version: ^0.1.1
بعد flutter pub get را اجرا کنید و وارد شوید:
import 'package:abrova_auth/abrova_auth.dart';
final auth = await AbrovaAuth.initialize('ab_live_your_api_key');
auth.authStateChanges.listen((user) {
// null when signed out
});
if (auth.currentUser == null) {
await auth.signInAnonymously();
}
print(auth.currentUser?.id); // ru_...کاربر از اولین اجرا یک شناسهی پایدار و یک توکن کاربر میگیرد. بعداً یک روش ورود را به همان کاربر وصل کنید — دادههایش مال خودش میماند:
await auth.linkPassword(email: 'sara@example.com', password: password);
روی وب هم همینطور است، بعد از اینکه scope @abrova را در .npmrc به Abrova Center ارجاع دادید:
@abrova:registry=https://center.abrova.ir/api/packages/abrova/npm/
import { createAbrovaAuth } from '@abrova/auth-web';
const auth = createAbrovaAuth({ apiKey: 'ab_live_your_api_key' });
await auth.ready();
if (!auth.isSignedIn) await auth.signInAnonymously();
console.log(auth.currentUserId); // ru_...صفحهی هر پلتفرم راهاندازی کامل را دارد: Flutter، iOS، Android، Web، React Native.
استفاده از کاربر در محصولات دیگر ابرووا#
امروز شناسهی کاربر را به ابرووا تریس بدهید تا خطاها نشان دهند برای کدام کاربر رخ دادهاند:
AbrovaTrace.setUserId(auth.currentUser!.id);
SDKهای دیگر ابرووا هر وقت به توکن نیاز داشته باشند آن را از token provider میخواهند، و SDK Auth پیش از انقضا تمدیدش میکند.
await AbrovaSync.init(AbrovaSyncConfig( apiKey: 'ab_live_your_api_key', tokenProvider: AbrovaAuth.instance.tokenProvider, ));
در این حالت قوانین امنیتی Sync کاربرِ واردشده را بهصورت auth.uid میبینند. برای همهی محصولات و پلتفرمها استفاده با محصولات دیگر ابرووا را ببینید.
چطور کار میکند#
- ۱اپ وارد میشودSDK اطلاعات ورود (ایمیل و رمز عبور، یک کد، یا ID token مربوط به Apple یا Google) را همراه کلید عمومی شما میفرستد.
- ۲Abrova Auth آن را بررسی میکندفقط در محدودهی پروژهی شما: روشهایش، شناسههای اپ Apple و Google آن، و کاربرانش.
- ۳اپ یک نشست میگیردیک access token یکساعته (توکن کاربر ابرووا) و یک refresh token که SDK آن را امن ذخیره میکند.
- ۴محصولات ابرووا به آن اعتماد میکنندهر محصول توکن را بررسی میکند و شناسهی کاربر را از آن میخواند.
قیمتگذاری#
هزینهی Abrova Auth بر اساس کاربر فعال ماهانه است: هر کاربری که در یک ماه تقویمی وارد شود یا نشستش را تمدید کند، در آن ماه یک بار شمرده میشود، هر چقدر هم از اپ استفاده کند. پلن وجود ندارد: برای مصرفِ بیشتر از سهمیهی رایگان، از کیف پول تومانیِ پیشپرداخت هزینه میکنید.
| رایگان در هر ماه | بیشتر از آن | |
|---|---|---|
| کاربر فعال ماهانه | ۱٬۰۰۰ | ۳۰٬۰۰۰ تومان برای هر ۱٬۰۰۰، هزینه از کیف پول |
| کاربر ناشناس جدید در روز | ۲۰۰ | سقف روزانه |
| روشهای ورود و گزارش فعالیت | همه شامل است | شامل است |
وقتی کیف پول خالی باشد و ۱٬۰۰۰ کاربر رایگان هم مصرف شده باشد، کاربرانِ جدیدِ آن ماه منتظر میمانند (MAU_LIMIT)؛ کاربرانی که قبلاً شمرده شدهاند همچنان وارد میشوند. کاربر فعال ماهانه و سقفها و صفحهی قیمتها را ببینید. برای کاربران فعال روزانه و کاربران بازگشتی، آمار استفاده را روشن کنید.
اشتباههای رایج#
- روش ورود روشن نیست. هر روش ورود خاموش شروع میشود. فراخوانیِ روشی که خاموش است با
METHOD_DISABLEDشکست میخورد.getMethods()را صدا بزنید و فقط دکمههایی را نشان دهید که برمیگرداند. - Abrova Auth برای پروژه روشن نیست. تا وقتی آن را در تنظیمات › محصولات روشن نکنید، فراخوانیها با
PRODUCT_DISABLEDشکست میخورند. - فقط Apple یا Google ارائه شده است. بعضی کاربران در ایران به Apple یا Google دسترسی ندارند. ناشناس، ایمیل، لینک یکبارمصرف یا کد تلگرام را هم ارائه کنید.
- Apple یا Google میگوید ID token نامعتبر است. bundle ID، Services ID یا Google client ID شما در کنسول نیست، یا nonceای که به ارائهدهنده دادید SHA-256 همان nonce خامی نیست که به ابرووا دادید. ورود با Apple و ورود با Google را ببینید.
- لینکهای ایمیلی رد میشوند.
redirectUrlباید با یکی از آدرسهای لینک در Abrova Auth › تنظیمات شروع شود. - ورود دوباره در هر بار اجرا. SDK نشست ذخیرهشده را هنگام اجرا بازیابی میکند. پیش از ورود دوباره بررسی کنید کاربر فعلی وجود دارد یا نه، وگرنه هر اجرا یک کاربر ناشناس جدید میسازد.
- استفاده از
currentUserپیش از بازیابی نشست. روی وب و React Native، بعد از reload منتظرready()(یا اولین callback وضعیت ورود) بمانید.