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

ایمیل و رمز عبور

ثبت‌نام، ورود، تأیید ایمیل و بازیابی رمز عبور با Abrova Auth. رمزهای عبور به‌صورت هش یک‌طرفه ذخیره می‌شوند؛ لینک‌های ایمیلی فقط آدرس‌های لینکی را که مجاز کرده‌اید باز می‌کنند و فقط یک بار کار می‌کنند.

به‌روزرسانی: ۵ آبان ۱۴۰۵
ایمیل و رمز عبور.

کاربران با یک آدرس ایمیل و رمز عبور حساب می‌سازند و سپس با همان‌ها وارد می‌شوند. Abrova Auth ایمیل‌های تأیید و بازیابی رمز عبور را می‌فرستد؛ لینک‌ها اپ (یا صفحه‌ی وب) شما را با یک token یک‌بارمصرف باز می‌کنند و اپ آن را به SDK برمی‌گرداند.

راه‌اندازی در کنسول#

  1. Abrova Auth › روش‌های ورود: ایمیل و رمز عبور را روشن کنید. کوتاه‌ترین رمز عبور (۸ تا ۱۲۸ کاراکتر، پیش‌فرض ۸) را تعیین کنید و مشخص کنید آیا کاربران پیش از ورود به ایمیل تأییدشده نیاز دارند یا نه.
  2. Abrova Auth › تنظیمات › آدرس‌های لینک: آدرس‌هایی را که لینک‌های ایمیلی شما اجازه دارند باز کنند اضافه کنید، مثلاً https://example.com/auth یا myapp://auth. هر کدام باید یک آدرس https:// یا URL scheme خودِ اپ شما باشد.

ثبت‌نام#

dart
// Flutter
final result = await AbrovaAuth.instance.signUpWithEmail(
  email: email,
  password: password,
  redirectUrl: 'https://example.com/auth/verify', // optional: sends a verification e-mail
);
if (!result.signedIn) {
  // The project requires a verified e-mail: ask the user to open the link first.
}
swift
// iOS
let result = try await AbrovaAuth.shared.signUp(email: email, password: password,
                                                redirectURL: "https://example.com/auth/verify")
kotlin
// Android
val result = AbrovaAuth.shared.signUp(email, password, redirectUrl = "https://example.com/auth/verify")
typescript
// Web and React Native
const result = await auth.signUpWithEmail({ email, password, redirectUrl: 'https://example.com/auth/verify' });

نتیجه verificationSent (ایمیل تأیید ارسال شده است) و signedIn را به شما می‌گوید. وقتی ایمیل تأییدشده الزامی است روشن باشد، کاربر تا وقتی لینک را باز نکند و سپس وارد نشود، وارد نمی‌شود.

رمز عبور باید دست‌کم به اندازه‌ی کوتاه‌ترین طول تعیین‌شده برای پروژه باشد، حداکثر ۱۲۸ کاراکتر، و جزو رمزهای خیلی رایج نباشد. در غیر این صورت فراخوانی با WEAK_PASSWORD شکست می‌خورد. آدرسی که از قبل حساب دارد با EMAIL_TAKEN شکست می‌خورد.

ورود#

SDKفراخوانی
FluttersignInWithEmail(email: email, password: password)
iOSsignIn(email: email, password: password)
AndroidsignIn(email, password)
Web، React NativesignInWithEmail({ email, password })

رمز اشتباه و ایمیل ناشناخته هر دو با INVALID_CREDENTIALS شکست می‌خورند، تا پاسخ هرگز فاش نکند چه کسی حساب دارد. شکست‌های پشت سر هم برای یک آدرس یا از یک مکان کُند می‌شوند (RATE_LIMITED).

تأیید ایمیل#

لینک تأیید، <your link address>?token=... را باز می‌کند و ۲۴ ساعت اعتبار دارد. token را بخوانید و به SDK بدهید:

SDKفراخوانی
FlutterverifyEmail(token)
iOSverifyEmail(token: token)
AndroidverifyEmail(token)
Web، React NativeverifyEmail({ token })

تأیید فقط ایمیل را تأییدشده علامت می‌زند؛ کاربر را وارد نمی‌کند. برای ارسال دوباره‌ی ایمیل برای کاربرِ واردشده، sendEmailVerification را با یک redirectUrl صدا بزنید.

بازیابی رمز عبور فراموش‌شده#

  1. sendPasswordReset را با ایمیل و یک redirectUrl صدا بزنید. پاسخ چه آدرس حساب داشته باشد چه نه، یکسان است.
  2. ایمیل به <redirectUrl>?token=... لینک می‌دهد که ۳۰ دقیقه اعتبار دارد و فقط یک بار قابل استفاده است.
  3. صفحه‌ی «رمز عبور جدید» را نشان دهید و resetPassword را با token و رمز عبور جدید صدا بزنید.
dart
// Flutter
await AbrovaAuth.instance.sendPasswordReset(email, redirectUrl: 'https://example.com/auth/reset');
// ... in the screen the link opens:
await AbrovaAuth.instance.resetPassword(tokenFromLink, newPassword);

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

دادن رمز عبور به کاربر ناشناس#

linkPassword یک ایمیل و رمز عبور به کاربرِ واردشده (معمولاً ناشناس) اضافه می‌کند. شناسه همان می‌ماند. وقتی کاربر دیگری آن آدرس را داشته باشد، با EMAIL_TAKEN شکست می‌خورد.

ایمیل‌ها#

Abrova Auth سه ایمیل می‌فرستد: تأیید ایمیل، بازیابی رمز عبور و لینک یک‌بارمصرف. نام پروژه‌ی شما در آن‌ها می‌آید و از آدرس ابرووا ارسال می‌شوند. ارسال برای هر آدرس (چند عدد در ساعت) و برای هر پروژه محدود است.

آدرس‌های لینک الزامی‌اند.

redirectUrlی که با یکی از آدرس‌های لینک شما شروع نشود، پیش از ارسال هر ایمیلی با INVALID_INPUT رد می‌شود. این کار جلوی سوءاستفاده از پروژه‌ی شما برای ارسال لینک‌هایی به مقصد دیگر را می‌گیرد.

خطاها#

کدمعنا
INVALID_CREDENTIALSایمیل یا رمز عبور اشتباه است.
EMAIL_TAKENحسابی با این ایمیل از قبل وجود دارد.
WEAK_PASSWORDخیلی کوتاه، خیلی بلند، یا جزو رمزهای رایج است.
EMAIL_NOT_VERIFIEDپروژه ایمیل تأییدشده می‌خواهد و این ایمیل هنوز تأیید نشده است.
TOKEN_INVALIDلینک تأیید یا بازیابی نامعتبر است، قبلاً استفاده شده، یا منقضی شده است.
INVALID_INPUTایمیل معتبر نیست، یا redirectUrl جزو آدرس‌های لینک شما نیست.
NOT_CONFIGUREDارسال ایمیل موقتاً در دسترس نیست.
USER_DISABLEDاین کاربر را در کنسول غیرفعال کرده‌اید.
این صفحه مفید بود؟
گزارش مشکل