☰ فهرست مستندات · صفحهی ورود آماده
صفحهی ورود آماده
صفحهی ورود ابرووا را با یک فراخوانی از اپ خود باز کنید، مثل FirebaseUI: ایمیل و رمز، لینک یکبارمصرف، تلگرام، Google، Apple و مهمان، به انگلیسی و فارسی. بدون ساختن فرم.
همهی SDKهای ابرووا احراز هویت یک صفحهی ورود آماده دارند، مثل FirebaseUI. اپ آن را باز میکند، کاربر وارد میشود و اپ کاربرِ واردشده را پس میگیرد. فقط روشهایی را نشان میدهد که در ابرووا احراز هویت › روشهای ورود روشن کردهاید، به انگلیسی یا فارسی، و داخل خود SDK است: چیز دیگری برای نصب نیست و چیزی روی سرور میزبانی نمیشود.
مرحله ۱: باز کردن صفحه#
روی صفحههای پهن و تبلت بهشکل پنجره و روی گوشی تمامصفحه باز میشود. کاربرِ واردشده را برمیگرداند، یا اگر کاربر آن را بست، هیچ.
// Flutter import 'package:abrova_auth/abrova_auth_ui.dart'; final user = await AbrovaSignIn.show(context, options: const AbrovaSignInOptions(appName: 'My Shop'));
// iOS (15 and later)
import AbrovaAuth
if let result = await AbrovaSignIn.present(from: self, options: AbrovaSignInOptions(appName: "My Shop")) {
print(result.userId)
}// Android
AbrovaSignIn.show(this, options = AbrovaSignInOptions(appName = "My Shop")) { result ->
if (result != null) Log.d("Auth", "signed in: ${result.userId}")
}
// یا در یک coroutine: val result = AbrovaSignIn.await(this)// Web (هر فریمورکی، یا بدون فریمورک)
import { openSignIn } from '@abrova/auth-web/ui';
const result = await openSignIn(auth, { appName: 'My Shop' });// React Native
import { useAbrovaSignIn } from '@abrova/auth-react-native/ui';
const signIn = useAbrovaSignIn(auth, { appName: 'My Shop' });
// <Button title="ورود" onPress={() => signIn.open()} /> و {signIn.element} را رندر کنیدنشست را SDK مثل هر ورود دیگری نگه میدارد، پس currentUser، توکن و SDKهای دیگر ابرووا بلافاصله کار میکنند.
برای گذاشتن فرم در صفحهی خودتان بهجای پنجره: AbrovaSignInScreen (فلاتر)، AbrovaSignInView (آیاواس و اندروید)، mountSignIn(element, auth) (وب)، <AbrovaSignInScreen /> (ریاکت نیتیو).
مرحله ۲: انتخاب آنچه نشان میدهد#
صفحه از ابرووا میپرسد کدام روشها روشناند و فقط همانها را نشان میدهد. بعضی چیزی هم از اپ شما لازم دارند:
| روش | کی نشان داده میشود |
|---|---|
| ایمیل و رمز | وقتی روشن است. ساخت حساب و فراموشی رمز را هم دارد. |
| لینک یکبارمصرف | وقتی روشن است و magicLinkRedirectUrl را بدهید، پیوندی که اپ شما را باز میکند. اپ آن را مثل قبل با signInWithMagicLink(token) تمام میکند. |
| تلگرام | وقتی روشن است. کاربر شمارهی موبایل و کدی را که تلگرام میفرستد وارد میکند. |
| Google، Apple | وقتی روشن است و تابعی بدهید که توکن ID را میگیرد (پایینتر). |
| مهمان | وقتی ورود ناشناس روشن است و allowGuest = true بدهید. پیشفرض خاموش: هر مهمان یک کاربر تازه است و در کاربران فعال ماهانهی طرح شما شمرده میشود. |
مرحله ۳: گزینهها#
| گزینه | چه میکند |
|---|---|
| appName، logo | عنوان («ورود به My Shop») و تصویری بالای آن. |
| languageCode | en یا fa (راست به چپ). پیشفرض: زبان اپ یا دستگاه، و انگلیسی اگر هیچکدام نباشد. |
| allowGuest | «ادامه بهعنوان مهمان» را نشان میدهد. پیشفرض خاموش. |
| google، apple | تابع شما که برای nonce هششدهی دادهشده توکن ID میگیرد. دکمه فقط وقتی دیده میشود که آن را بدهید. |
| magicLinkRedirectUrl | دکمهی لینک یکبارمصرف را نشان میدهد. باید یکی از آدرسهای بازگشت مجاز پروژه باشد. |
| verifyRedirectUrl، resetRedirectUrl | صفحههای خودتان برای پیوند تأیید و بازیابی. پیشفرض: صفحههای خود ابرووا. |
| openUrl | وقتی کاربر باید اول ربات را باز کند، پیوند ربات تلگرام را باز میکند. بدون آن، پیوند برای کپی نشان داده میشود. |
| color (وب، ریاکت نیتیو) | رنگ دکمه. روی وب متغیرهای CSS مثل --abrova-accent هم هست. |
صفحه ظاهر اپ شما را دنبال میکند: تم در فلاتر و اندروید، رنگ tint در آیاواس، color در وب و ریاکت نیتیو، و حالت تاریک همهجا.
Google و Apple#
Google و Apple با SDK خودشان کار میکنند (در آیاواس apple: AbrovaSignInOptions.nativeApple آن را خودش اجرا میکند)؛ راهاندازی آنها در صفحههای Google و Apple است. یک تابع کوچک به صفحه بدهید: nonce هششده را میگیرد، ورود Google یا Apple شما را با آن اجرا میکند و توکن ID را برمیگرداند، یا اگر کاربر لغو کرد هیچ. صفحه nonce خام را نگه میدارد و به ابرووا میفرستد، پس توکنِ دزدیدهشده دوباره قابل استفاده نیست.
AbrovaSignInOptions( google: (hashedNonce) async => /* ورود Google شما با این nonce */ idToken, )
زبان#
صفحه به انگلیسی یا فارسی است، از زبان اپ شما یا languageCode. تا وقتی باز است، ایمیلهایی که میفرستد (تأیید ایمیل، بازیابی رمز، لینک یکبارمصرف) هم به همان زباناند، مگر اینکه languageCode کلاینت را خودتان تعیین کرده باشید. برای تغییر متن آنها قالبهای ایمیل را ببینید.
امن از پایه#
- پیام خطا از کد خطا و به زبان کاربر میآید؛ پیامهای فنی ابرووا هرگز نشان داده نمیشوند.
- هر بار یک کار، و تا وقتی ورودی در جریان است صفحه بسته نمیشود، پس هیچ ورودی بعد از اینکه به اپ گفته شد «بسته شد» انجام نمیشود.
- رمز وقتی کاربر وارد میشود و وقتی صفحه بسته میشود پاک میشود.
- پیوند ربات تلگرام فقط وقتی باز میشود که آدرس
https://t.meباشد. - روی وب فرم در یک shadow root است و فقط متن مینویسد، پس CSS صفحهی شما آن را خراب نمیکند و چیزی که نشان میدهد بهعنوان کد اجرا نمیشود.
صفحهی آماده به SDK ابرووا احراز هویت نسخهی 0.4.0 نیاز دارد: فلاتر، آیاواس، اندروید، وب یا ریاکت نیتیو.
قدمهای بعدی#
بهروزرسانی: ۱۷ آبان ۱۴۰۵