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

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

قبل از اینکه شروع کنی

  1. اگر هنوز این کار را نکرده‌اید، مراحل موجود در راهنمای شروع به کار را دنبال کنید.
  2. کیت توسعه نرم‌افزار (SDK) مدیریت فایربیس را نصب و پیکربندی کنید . مطمئن شوید که SDK را با اطلاعات صحیح برای پروژه فایربیس خود مقداردهی اولیه می‌کنید .

احراز هویت با فایربیس

  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، می‌توانید شناسه کاربری منحصر به فرد کاربر وارد شده را از متغیر auth دریافت کنید و از آن برای کنترل داده‌هایی که کاربر می‌تواند به آنها دسترسی داشته باشد، استفاده کنید.

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

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

await FirebaseAuth.instance.signOut();