میتوانید با تغییر سرور احراز هویت خود برای تولید نشانههای امضا شده سفارشی زمانی که کاربر با موفقیت وارد سیستم میشود، احراز هویت Firebase را با یک سیستم احراز هویت سفارشی ادغام کنید. برنامه شما این نشانه را دریافت میکند و از آن برای احراز هویت با Firebase استفاده میکند.
قبل از اینکه شروع کنی
- اگر قبلاً این کار را نکرده اید، مراحل راهنمای شروع کار را دنبال کنید.
- Firebase Admin SDK را نصب و پیکربندی کنید . مطمئن شوید که SDK را با اعتبارنامه های صحیح برای پروژه Firebase خود مقداردهی کنید.
با Firebase احراز هویت
وقتی کاربران وارد برنامه شما میشوند، اعتبارنامه ورود به سیستم (به عنوان مثال، نام کاربری و رمز عبور آنها) را به سرور احراز هویت خود ارسال کنید. سرور شما اعتبارنامه ها را بررسی می کند و در صورت معتبر بودن، یک توکن Firebase سفارشی ایجاد می کند و رمز را به برنامه شما باز می فرستد.
پس از دریافت رمز سفارشی از سرور احراز هویت خود، آن را به
signInWithCustomToken()
ارسال کنید تا وارد کاربر شود:try { final userCredential = await FirebaseAuth.instance.signInWithCustomToken(token); print("Sign-in successful."); } on FirebaseAuthException catch (e) { switch (e.code) { case "invalid-custom-token": print("The supplied token is not a Firebase custom auth token."); break; case "custom-token-mismatch": print("The supplied token is for a different Firebase project."); break; default: print("Unkown error."); } }
مراحل بعدی
پس از اینکه کاربر یک حساب جدید ایجاد کرد، این حساب به عنوان بخشی از پروژه Firebase شما ذخیره میشود و میتوان از آن برای شناسایی کاربر در همه برنامههای پروژهتان استفاده کرد، صرف نظر از اینکه کاربر از چه روش ورود به سیستم استفاده کرده است.
در برنامه های خود، می توانید اطلاعات اولیه نمایه کاربر را از شی User
دریافت کنید. به مدیریت کاربران مراجعه کنید.
در قوانین امنیتی Firebase Realtime Database و Cloud Storage، میتوانید شناسه کاربری منحصربهفرد کاربر واردشده به سیستم را از متغیر auth
دریافت کنید و از آن برای کنترل دادههایی که کاربر میتواند به آن دسترسی داشته باشد استفاده کنید.
میتوانید به کاربران اجازه دهید با استفاده از چندین ارائهدهنده احراز هویت، با پیوند دادن اعتبار ارائهدهنده احراز هویت به یک حساب کاربری موجود، به برنامه شما وارد شوند.
برای خروج از سیستم کاربر، signOut()
را فراخوانی کنید:
await FirebaseAuth.instance.signOut();