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

معرفی و شروع سریع

Abrova Auth کاربران اپ شما را وارد می‌کند — ناشناس، ایمیل و رمز عبور، لینک یک‌بارمصرف، کد تلگرام، Apple و Google — فقط با کلید عمومی و بدون سرور. ۱٬۰۰۰ کاربر فعال ماهانه رایگان در هر ماه.

Flutter 0.1.1iOS 13+Android API 23+WebReact Nativeبه‌روزرسانی: ۵ آبان ۱۴۰۵

با 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 نصب می‌شود.

پلتفرمپکیجمستندات
Flutterabrova_authSDK Flutter
iOSAbrovaAuth (Swift Package Manager)SDK iOS
Androidir.abrova:abrova-authSDK Android
Web@abrova/auth-webSDK Web
React Native@abrova/auth-react-nativeSDK React Native

هر پنج SDK همان فراخوانی‌ها را با نام‌گذاری مخصوص هر پلتفرم دارند. Abrova Auth برای اپ‌هاست: SDK سرور ندارد و نیازی هم به آن نیست.

Abrova Auth را روشن کنید#

  1. در کنسول ابرووا، تنظیمات › محصولات پروژه را باز کنید و Abrova Auth را روشن کنید.
  2. Abrova Auth › روش‌های ورود را باز کنید و روش‌هایی را که اپ شما ارائه می‌دهد روشن کنید: ناشناس، ایمیل و رمز عبور، لینک یک‌بارمصرف، کد تلگرام، Apple و Google. همه‌ی روش‌ها تا وقتی روشنشان نکنید خاموش‌اند.
  3. برای 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های مرورگر.

نصب و ورود#

کوتاه‌ترین مسیر، کاربر ناشناس است: بدون صفحه، با یک فراخوانی. اول ناشناس را در کنسول روشن کنید.

پکیج را با رجیستری ابرووا به‌عنوان منبع اضافه کنید:

pubspec.yamlYAML
dependencies:
abrova_auth:
  hosted: https://center.abrova.ir/api/packages/abrova/pub
  version: ^0.1.1

بعد flutter pub get را اجرا کنید و وارد شوید:

dart
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_...

کاربر از اولین اجرا یک شناسه‌ی پایدار و یک توکن کاربر می‌گیرد. بعداً یک روش ورود را به همان کاربر وصل کنید — داده‌هایش مال خودش می‌ماند:

dart
await auth.linkPassword(email: 'sara@example.com', password: password);

روی وب هم همین‌طور است، بعد از اینکه scope @abrova را در .npmrc به Abrova Center ارجاع دادید:

.npmrcINI
@abrova:registry=https://center.abrova.ir/api/packages/abrova/npm/
typescript
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.

استفاده از کاربر در محصولات دیگر ابرووا#

امروز شناسه‌ی کاربر را به ابرووا تریس بدهید تا خطاها نشان دهند برای کدام کاربر رخ داده‌اند:

dart
AbrovaTrace.setUserId(auth.currentUser!.id);
به‌زودی. Abrova Sync، Chat، Push، Storage و A/B Testing به‌زودی می‌آیند. وقتی راه بیفتند، token provider مربوط به SDK Auth را مثل نمونه‌ی زیر به آن‌ها می‌دهید؛ فعلاً قابل استفاده نیستند.

SDKهای دیگر ابرووا هر وقت به توکن نیاز داشته باشند آن را از token provider می‌خواهند، و SDK Auth پیش از انقضا تمدیدش می‌کند.

dart
await AbrovaSync.init(AbrovaSyncConfig(
  apiKey: 'ab_live_your_api_key',
  tokenProvider: AbrovaAuth.instance.tokenProvider,
));

در این حالت قوانین امنیتی Sync کاربرِ واردشده را به‌صورت auth.uid می‌بینند. برای همه‌ی محصولات و پلتفرم‌ها استفاده با محصولات دیگر ابرووا را ببینید.

چطور کار می‌کند#

  1. ۱اپ وارد می‌شودSDK اطلاعات ورود (ایمیل و رمز عبور، یک کد، یا ID token مربوط به Apple یا Google) را همراه کلید عمومی شما می‌فرستد.
  2. ۲Abrova Auth آن را بررسی می‌کندفقط در محدوده‌ی پروژه‌ی شما: روش‌هایش، شناسه‌های اپ Apple و Google آن، و کاربرانش.
  3. ۳اپ یک نشست می‌گیردیک access token یک‌ساعته (توکن کاربر ابرووا) و یک refresh token که SDK آن را امن ذخیره می‌کند.
  4. ۴محصولات ابرووا به آن اعتماد می‌کنندهر محصول توکن را بررسی می‌کند و شناسه‌ی کاربر را از آن می‌خواند.

قیمت‌گذاری#

هزینه‌ی 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 وضعیت ورود) بمانید.
این صفحه مفید بود؟
گزارش مشکل