لینک یکبارمصرف
ورود بدون رمز عبور با ایمیل در Abrova Auth. کاربر ایمیلش را وارد میکند، لینک یکبارمصرف (۱۵ دقیقه، فقط یک بار) را باز میکند و وارد میشود؛ حساب در اولین استفاده ساخته میشود.
کاربر آدرس ایمیلش را تایپ میکند و یک لینک ورود دریافت میکند. با باز کردن لینک، همراه یک token یکبارمصرف به اپ شما برمیگردد و SDK آن را با یک نشست عوض میکند. رمزی برای به خاطر سپردن نیست؛ حساب اولین باری که آن آدرس وارد شود ساخته میشود.
راهاندازی در کنسول#
- Abrova Auth › روشهای ورود: لینک یکبارمصرف را روشن کنید.
- Abrova Auth › تنظیمات › آدرسهای لینک: آدرسی را که لینک باز میکند اضافه کنید، مثلاً
https://example.com/auth/magicیاmyapp://auth/magic.
در موبایل، کاری کنید که آن آدرس اپ شما را باز کند: یک custom URL scheme، یا برای آدرس https:// یک universal link در Apple یا App Link در Android.
ارسال لینک#
// Flutter await AbrovaAuth.instance.sendMagicLink(email, redirectUrl: 'myapp://auth/magic');
// iOS try await AbrovaAuth.shared.sendMagicLink(email: email, redirectURL: "myapp://auth/magic")
// Android AbrovaAuth.shared.sendMagicLink(email, redirectUrl = "myapp://auth/magic")
// Web and React Native
await auth.sendMagicLink({ email, redirectUrl: 'https://example.com/auth/magic' });پاسخ چه آدرس حساب داشته باشد چه نه، یکسان است. به کاربر بگویید صندوق ایمیلش را ببیند.
ورود با لینک#
لینک، <redirectUrl>?token=... را باز میکند. token را بخوانید و وارد شوید:
// Flutter: token from the incoming link await AbrovaAuth.instance.signInWithMagicLink(Uri.parse(link).queryParameters['token']!);
// iOS: pass the URL the app was opened with try await AbrovaAuth.shared.signInWithMagicLink(url: openedURL)
// Android: from the intent that opened the activity
AbrovaAuth.tokenFromLink(intent.dataString ?: "")?.let { AbrovaAuth.shared.signInWithMagicLink(it) }// Web
const token = new URL(location.href).searchParams.get('token');
if (token) await auth.signInWithMagicLink({ token });اولین ورود با یک آدرس، کاربر را میسازد و ایمیل را تأییدشده علامت میزند. لینکهای بعدی به همان کاربر وارد میشوند.
قواعد#
| قاعده | مقدار |
|---|---|
| اعتبار لینک | ۱۵ دقیقه |
| تعداد استفاده | یک بار. باز کردن دوباره با TOKEN_INVALID شکست میخورد |
| ایمیل برای هر آدرس | چند عدد در ساعت |
| آدرسهای لینک | فقط آنهایی که مجاز کردهاید؛ هر آدرس دیگری با INVALID_INPUT شکست میخورد |
کاربرِ لینک یکبارمصرف و کاربرِ ایمیل و رمز عبور با یک آدرس، یک کاربرند: لینک مالکیت آدرس را ثابت میکند. کاربرانی که با Apple یا Google وارد شدهاند جدا هستند، حتی با همان آدرس.
خطاها#
| کد | معنا |
|---|---|
| TOKEN_INVALID | لینک نامعتبر است، قبلاً استفاده شده، یا بیش از ۱۵ دقیقه از آن گذشته است. لینک جدیدی بفرستید. |
| INVALID_INPUT | ایمیل معتبر نیست، یا redirectUrl جزو آدرسهای لینک شما نیست. |
| RATE_LIMITED | لینکهای بیش از حد برای این آدرس یا از این مکان. بعد از retryAfterSec دوباره امتحان کنید. |
| USER_DISABLED | این کاربر را در کنسول غیرفعال کردهاید. |
| NOT_CONFIGURED | ارسال ایمیل موقتاً در دسترس نیست. |
| METHOD_DISABLED | لینک یکبارمصرف برای پروژه خاموش است. |