احراز هویت با Firebase با استفاده از یک سیستم احراز هویت سفارشی

می‌توانید با تغییر سرور احراز هویت خود برای تولید نشانه‌های امضا شده سفارشی زمانی که کاربر با موفقیت وارد سیستم می‌شود، احراز هویت Firebase را با یک سیستم احراز هویت سفارشی ادغام کنید. برنامه شما این نشانه را دریافت می‌کند و از آن برای احراز هویت با Firebase استفاده می‌کند.

قبل از شروع

  1. اگر قبلاً این کار را نکرده‌اید، مراحل راهنمای شروع کار را دنبال کنید.
  2. Firebase Admin SDK را نصب و پیکربندی کنید . مطمئن شوید که SDK را با اعتبارنامه های صحیح برای پروژه Firebase خود مقداردهی کنید .

با Firebase احراز هویت

  1. وقتی کاربران وارد برنامه شما می‌شوند، اعتبار ورود به سیستم (به عنوان مثال، نام کاربری و رمز عبور آنها) را به سرور احراز هویت خود ارسال کنید. سرور شما اعتبارنامه ها را بررسی می کند و در صورت معتبر بودن، یک توکن Firebase سفارشی ایجاد می کند و رمز را به برنامه شما باز می فرستد.

  2. پس از دریافت رمز سفارشی از سرور احراز هویت، آن را به 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("Unknown error.");
        }
    }
    

مراحل بعدی

پس از اینکه کاربر یک حساب جدید ایجاد کرد، این حساب به عنوان بخشی از پروژه Firebase شما ذخیره می‌شود و می‌توان از آن برای شناسایی کاربر در هر برنامه در پروژه‌تان استفاده کرد، صرف نظر از اینکه کاربر از چه روش ورود به سیستم استفاده کرده است.

در برنامه های خود، می توانید اطلاعات اولیه نمایه کاربر را از شی User دریافت کنید. به مدیریت کاربران مراجعه کنید.

در قوانین امنیتی Firebase Realtime Database و Cloud Storage، می‌توانید شناسه کاربری منحصر به فرد کاربر واردشده را از متغیر auth دریافت کنید و از آن برای کنترل داده‌هایی که کاربر می‌تواند به آن دسترسی داشته باشد استفاده کنید.

می‌توانید به کاربران اجازه دهید با استفاده از چندین ارائه‌دهنده احراز هویت، با پیوند دادن اعتبار ارائه‌دهنده تأیید هویت به یک حساب کاربری موجود، به برنامه شما وارد شوند.

برای خروج از سیستم کاربر، signOut() را فراخوانی کنید:

await FirebaseAuth.instance.signOut();